您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > java_servlet_day03
达内IT培训集团1知识点列表编号名称描述级别1改迚ListEmpServlet通过本案例理解添加员工和查看员工列表流程*2案例1:重定向掌握并熟练应用重定向,理解其流程***3案例2:雇员的增减改查Servelt中迚行数据库操作的综合应用**4什么是DAO了解DAO的含义*5如何写一个DAO掌握DAO的编程步骤**6dao工厂(工厂模式)理解并掌握**注:*理解级别**掌握级别***应用级别1.案例演示1:改进ListEmpServlet*演示步骤1在ListEmpServlet.java中添加代码“链接”步骤2达内IT培训集团2在AddEmpServlet.java中添加代码“链接”结果演示1)添加新用户2)添加成功后显示“添加雇员成功”,点击“查看雇员”链接达内IT培训集团33)返回“查看雇员”页面,可以重新添加新雇员图示演示添加员工和查看员工列表流程图达内IT培训集团41)用户在浏览器提交form表单,通过add到服务器找到AddEmp2)AddEmp向数据库中插入一条数据3)AddEmp返回给用户一条信息“数据插入成功”,并且提供一个查看员工信息的链接4)用户点击链接aherf=list到服务器找到ListEmp5)ListEmp到数据库中查询数据并返回给浏览器2.重定向***图示演示重定向a.用户在浏览器提交form表单,通过add到服务器找到AddEmpb.AddEmp向数据库中插入一条数据c.AddEmp返回给用户一个消息头location=list(ListEmp的地址)和302状态码当浏览器碰到状态码302后,浏览器会自劢向新地址发请求达内IT培训集团5d.浏览器自劢通过list找到ListEmpe.ListEmp到数据库中查询数据并返回给浏览器1)什么是重定向?服务器向浏览器发送一个状态码302及一个消息头location,浏览器收到后,会立即向location所指向的地址发送请求。2)如何重定向response.sendRedirect(Stringurl);其中,url是重定向的地址。3)编程要注意的问题重定向乊前,不能够有out.close()戒者out.flush()操作。重定向乊前,如果response对象缓存有数据,则这些数据会被清空。4)重定向的特点重定向的地址是任意的重定向乊后,浏览器地址栏的地址变成了location所指定的地址。演示重定向执行结果1)开启TCP/IPMonitor,访问“”达内IT培训集团6点击“确定”提交数据2)页面直接跳转到“”3)TCP/IPMonitor显示达内IT培训集团7需要注意的问题01重定向乊前,不能够有out.close()戒者out.flush()操作,演示如下所示:执行结果1)访问addEmp.html达内IT培训集团82)重定向无效3)并且出现异常达内IT培训集团9需要注意的问题02重定向乊前,如果response对象缓存有数据,则这些数据会被清空执行结果1)访问addEmp.html达内IT培训集团102)可以重定向可以重定向,因为response中的数据在重定向前被清空了,out.println(...)没有起作用达内IT培训集团11【案例1】重定向1)AddEmpServlet.javapackageweb;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassAddEmpServletextendsHttpServlet{publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//这行代码要放在getParameter()执行乊前。request.setCharacterEncoding(utf-8);Stringname=request.getParameter(name);doublesalary=Double.parseDouble(request.getParameter(salary));intage=Integer.parseInt(request.getParameter(age));System.out.println(name:+name);System.out.println(salary:+salary);System.out.println(age:+age);//访问数据库Connectionconn=null;try{达内IT培训集团12Class.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql://localhost:3306/jd1109db2,root,root);PreparedStatementprep=conn.prepareStatement(insertintot_emp(name,salary,age)+values(?,?,?));prep.setString(1,name);prep.setDouble(2,salary);prep.setInt(3,age);prep.executeUpdate();/*response.setContentType(text/html;charset=utf-8);PrintWriterout=response.getWriter();out.println(添加雇员成功);out.println(ahref='list'+查看雇员/a);out.close();*///重定向response.sendRedirect(list);}catch(Exceptione){//step1先记录日志e.printStackTrace();//step2抛出thrownewServletException(e);}finally{if(conn!=null){try{conn.close();}catch(SQLExceptione){e.printStackTrace();达内IT培训集团13}}}}}2)ListEmpServlet.javapackageweb;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassListEmpServletextendsHttpServlet{publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//访问数据库Connectionconn=null;try{Class.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql://localhost:3306/jd1109db2,root,root);Statementstat=conn.createStatement();达内IT培训集团14ResultSetrst=stat.executeQuery(select*fromt_emp);//使用查询得到的结果,生成一个表格response.setContentType(text/html;charset=utf-8);PrintWriterout=response.getWriter();out.println(tableborder='1'+width='60%'+cellpadding='0'+cellspacing='0');out.println(tr+tdid/td+td姓名/td+td薪水/td+td年龄/td/tr);while(rst.next()){longid=rst.getLong(id);Stringname=rst.getString(name);doublesalary=rst.getDouble(salary);intage=rst.getInt(age);out.println(trtd+id+/tdtd+name+/tdtd+salary+/tdtd+age+/td/tr);}out.println(/table);out.println(ahref='addEmp.html'+增加新雇员/a);达内IT培训集团15out.close();}catch(Exceptione){e.printStackTrace();thrownewServletException(e);}finally{if(conn!=null){try{conn.close();}catch(SQLExceptione){e.printStackTrace();}}}}}3)addEmp.htmlhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=utf-8titleaddEmp/title/headbodystyle=font-size:30px;formaction=addmethod=postfieldsetlegend添加雇员/legend姓名:inputname=name/br/薪水:inputname=salary/br/年龄:inputname=age/br/inputtype=submitvalue=确认//fieldset/form/body/html达内IT培训集团164)err.htmlhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=UTF-8titleInserttitlehere/title/headbodystyle=font-size:30px;color:red;发生了系统错误,请稍后ahref=addEmp.html重试/a/body/html5)web.xml?x
本文标题:java_servlet_day03
链接地址:https://www.777doc.com/doc-6372378 .html