-
/** * 自动回复功能控制层 */ @SuppressWarnings("serial") public class AutoReplyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("AutoReplyServlet接受send GET请求"); this.doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("AutoReplyServlet接受send post请求"); resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); QueryService queryService = new QueryService(); out.write(queryService.queryByCommand(req.getParameter("content"))); out.flush(); out.close(); } }查看全部
-
/** * 对话页的初始化控制 */ @SuppressWarnings("serial") public class InitTalkServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("InitTalkServlet接受talk页面get请求"); //设置编码 req.setCharacterEncoding("UTF-8"); //向页面跳转 req.getRequestDispatcher("/WEB-INF/jsp/front/talk.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("InitTalkServlet接受talk页面POST请求"); this.doGet(req,resp); } }查看全部
-
标签作用查看全部
-
如果js中Dom对象的值为 ""、null、undefined、0;则if(Dom对象)为false 点击按钮提交请求,判断字符串不为空的话,执行ajax请求。 ajax复习: url:请求后台的路径 type:提交方式 dataType:数据类型 timeout:超时时间 success:成功后的回调函数,函数中的内容是对服务端传递的数据进行处理。 data:请求参数查看全部
-
Connection为何不需要commit();因为conn.setAutoCommit(true);设置为自动提交,而我们MyBatis把它封装后,setAutoCommit(false);所以需要手动提交事务。 Ps1:a href="#" 这个在html中有什么作用?跳转到本页面顶部,一般建议写成javascript:void(0);要好一点,点了一点反应都没有,写#点了会跳一下的。 Ps2:servlet拿到什么数据类型就什么类型,至于service不一致时,再service里面去修改,这也是service作用之一。 Ps3:MyEclipse对JS等文件报错处理:http://jingyan.baidu.com/article/ca41422fe094251eae99ede7.html Ps4: /** * 调用后台批量删除方法 */ function deleteBatch(basePath){ $("#mainForm").attr("action",basePath+"DeleteBatchServlet.action"); $("#mainForm").submit(); } 解析:将id为mainForm的表单的action提交路径改为basePath+"DeleteBatchServlet.action"这个并且执行submit提交表单!查看全部
-
改名字并覆盖调用的方法查看全部
-
<%--删除并保留查询条件--%> <script type="text/javascript"> $(function () { $(".delete").click(function () { var href = this.href; alert("是否删除"+href+"这个字段?"); alert("删除成功!"); $("form").attr('action',href).submit(); return false; }) }) </script> <a href="${pageContext.request.contextPath}/DeleteOneServlet.action?id=${message.id}" class="delete">删除</a>查看全部
-
separator分隔符查看全部
-
separator分隔符查看全部
-
应用log4j(日志)调试动态SQL: 1、jar包和配置文件 2、log4j.properties <1>log4j.rootLogger=DEBUG,Console:输出级别(级别<由低到高>debug/info/warn/error)和输出位置(控制台) <2>log4j.appender.Console=org.apache.log4j.ConsoleAppender:配置这个类才会输出在控制台(可在别处) <3>log4j.appender.layout=org.apache.log4j.PatternLayout:布局(按照自己的想法去输出)<4>log4j.appender.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n: %d:产生日志的时间 [%t]:产生日志所处线程的线程名称 %-5p:输出日志的级别、 "5":代表输出的字符会占5位字符,不足则会用空格补齐; "-":指的是补齐的空格在右边,没有则在左边. [%c]:指输出这个日志时处于的那个类的全名,包括包名 %m:输出的时候附加的信息 %n输出换行 <5>log4j.logger.org.apache=INFO:为不同包配不同的级别,把总的覆盖,可看到自己想看的信息 log4j配置详解 一、log4j.rootLogger=INFO, stdout, R 第一个参数为等级,后面可跟一到多个参数,为输出的位置; 例句的意思为将等级为INFO的日志信息使用stdout和R进行输出,stdout和R可以自己命名; 等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,OFF是关闭,不输出任何信息,其他级别按这个顺序依次降低,如果 指定一个级别,如INFO,则比该级别高的信息都会输出查看全部
-
<!-- 配置sql语言,查询语言,ID+ namespace="Message"为唯一的标识符 这里的parameterType请注意,拼接的sql语句的属性可以是一个string 类型的, 多个必须封装起来例如bean层调用时是她所在的包 一个 --> <select id="queryMessageList" parameterType="com.imooc.bean.Message" resultMap="MessageResult"> select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE <where> <!-- 我在此处开始使用mybatis的动态拼接了,用的是ognl的表达式,&&=and=&& “”="" ?号的处理是#{查询的属性}--> <if test="command != null and !"".equals(command.trim())"> and COMMAND=#{command} </if> <!-- 这里是模糊匹配,使用模糊匹配的话必须用'%'将传参包起来 --> <if test="description != null and !"".equals(description.trim())"> and DESCRIPTION like '%' #{description} '%' </if>查看全部
-
Mybatis配置文件内容: 1)为避免在整个工程中出现重名的id,所以在配置文件中首先指定命名空间。 2)resultMap对应数据库的一个表。其column属性对应表中字段(或者查询语句中字段的别名),property属性对应实体类中的对应字段。(id表示主键,其余字段用result) 3)具体查询语句的配置中,其parameterType指向一个封装好的类,此类用来获取动态sql的查询条件。其后的resultMap指定查询结果使用哪个类返回,这里就是2中的resultMap的id。查看全部
-
sqlsession调用 方法来执行 sql语句 只是输入了select标签的名字,但是并没有输入sql配置文件的uri,所以要在数据库连接的核心配置文件中 导入 sql配置文件,即<mappers>标签与子标签<mapper> sqlsession调用时会用到这个名字 resultmap属性。对应的是resultmap标签的id mybatis配置文件中的mapper标签 属性是namespace 翻译是命名空间 mapper标签内包含 resultmap标签 是执行完查询语句后返回的结果集 resultmap有子标签 id。 用来配置 有主键约束的行 和result。 用来配置其他行 并列关系 ,都有属性column jdbctype property属性 column看名字 就是数据库的字段名 properry 是数据库对应dao类中的属性 select标签 insert标签 update标签。这些标签里写的都是sql语句 resultMap 中id是标识,是唯一的。resultMap中的子标签中的id表示后台数据库的主键,而result对应得实后台数据库除了主键以外的其他字段。查看全部
-
1.在核心配置文件中指定要执行的sql配置文件的路径,使用<mappers>,可以添加多个sql映射文件,指定资源时,使用resource属性指定资源路径即可,这样程序会自动读取sql配置文件,并创建sqlSessionFactory。 2.配置messege.xml查询数据库(sql配置文件),如图: 执行sqlSession.selectList()方法时,通过配置文件中的select标签找到sql语句,执行数据库的查询,返回的结果通过select标签中resultMap这样的一个属性,去查找resultMap标签,然后按照resultMap中的标签中的配置完成java属性与数据库字段的对应。 mybatis的sql语句通过xml文件进行配置 sql的配置文件中的<mapper>标签的namespace要唯一,调用sql语句,eg:sqlSession.selectList("Messages.list");//namespace的名字点上语句的ID <resultMap type="" id="Message">//映射的是封装返回结果的bean,type是bean的全类名,id要唯一(resultMap中) <id column="ID" jdbcType="VARCHAR" property="id"></id> //主键使用,column对应的是数据的字段名,jdbcType对应的是数据字段的类型,property对应的是实体的属性名 <result ></result> //其他字段使用 </resultMap> 查询语句: <select id="list" resultMap="Message">sql语句</select> 写好的sql配置文件,可在mybatis的连接配置文件中引入: <mappers> <mapper resource="sql配置文件路径" ></mapper> </mappers> <mappers>中子标签<mapper>的resource属性也是从src根目录开始算起,“.”改为“/”;如果有多个<mapper>则需添加多个。查看全部
-
Ps1:配置文件的详细路径:src/test/java/org/apache/ibatis/submiited/complex_property/Configuration.xml Ps2:小技巧:粘贴类名,再粘贴对象名,改大小写即可。 Ps3:顺序(从底层往高层):实体类-->Dao-->Service-->Servlet-->页面。 Ps4:数据库服务启动即可,无需登录数据库操作软件。 Ps5:Dao层一般与表(实体类)相关,命名一般在实体类名+“Dao”即可;Service层命名一般与Servlet命名对应。查看全部
举报
0/150
提交
取消