Servlet 课堂笔记 (四)

  • 格式:doc
  • 大小:83.50 KB
  • 文档页数:8

30.隐藏表单案例提交界面package com.ltl;import javax.servlet.http.*;import java.io.*;public class HiddenForm1 extends HttpServlet {// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res){// 业务逻辑try{// 中文乱码处理res.setContentType("text/html;charset=gbk");PrintWriter pw=res.getWriter();String test=”abc”; // abc是变量// 返回登录界面pw.println("<html>");pw.println("<body>");pw.println("<h1>登录界面</h1>");pw.println("<form action=hiddenform2 Method=post>"); //表单pw.println("用户名:<input type=text name=username><br>");pw.println("密码:<input type=passwordname=password><br>");pw.println("<input type=hidden name=sexvalue=+test+><br>");pw.println("<input type=submit value=login><br>");pw.println("</form>");pw.println("</body>");pw.println("</html>");}catch(Exception e){e.printStackTrace();}}接收数据package com.ltl;import javax.servlet.http.*;public class HiddenForm2 extends HttpServlet{// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res) {// 业务逻辑try{res.setContentType(“text/html;charset=gbk”);PrintWriter pw=res.getWriter();// 得到用户名String u=req.getParameter(“username”);// 得到密码String p=req.getParameter(“password”);// 得到隐藏的性别值String sex=req.getParameter(“sex”);pw.println("username="+u);pw.println("password="+p);pw.println("sex="+sex);}catch(Exception e){e.printStackTrace();}}// 处理post请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doPost(HttpServletRequest req,HttpServletResponse res) {this.doGet(req,res);}}31.session 案例(一)如何得到session / 和在session中添加属性package com.ltl;import javax.servlet.http.*;public class SessionTest1 extends HttpServlet {// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res) {// 业务逻辑try{// 中文乱码处理res.setContentType("text/html;charset=gbk");PrintWriter pw=res.getWriter();// 得到和req相关联的session,若没有就创建sessionHttpSession ht=req.getSession(true);// 得到session 的id,这是由容器分配的String sessionId=ht.getId();pw.println(“sessionTest1 的session id=”+sessionId+”<br>”)// 向session中添加一个属性(String 类型的)ht.setAtrribute(“name”,”ltl”);// 如果不指定时间,那么该session的有效期是30min(默认)// 你也可以指定时间,30sht.sentMaxInctiveInterval(30);pw.println(“在session中放入一个属性name=ltl”);}catch(Exception e){e.printStackTrace();}}32.session 案例(二)如何得到sessionpackage com.ltl;import javax.servlet.http.*;import java.io.*;public class SessionTest2 extends HttpServlet {// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res) {// 业务逻辑try{// 中文乱码处理res.setContentType("text/html;charset=gbk");PrintWriter pw=res.getWriter();// 得到和req相关联的session,若没有就创建sessionHttpSession ht=req.getSession(true);// 得到session 的id,这是由容器分配的String sessionId=ht.getId();pw.println(“sessionTest2 的session id=”+sessionId);// 得到session中的某个属性String myName=(String)ht.getAttribute(“name”);p w.println(“name=”+myName);}catch(Exception e){e.printStackTrace();}}33.session 案例(三)如何删除属性/ 如何使得session无效package com.ltl;import javax.servlet.http.*;import java.io.*;public class SessionTest3 extends HttpServlet {// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res) {// 业务逻辑try{// 中文乱码处理res.setContentType("text/html;charset=gbk");PrintWriter pw=res.getWriter();// 得到和req相关联的session,若没有就创建sessionHttpSession ht=req.getSession(true);// 向session中添加一个属性(String 类型的)ht.setAttribute(“win”,”周星驰”);ht.setAttribute(“me”,”张柏芝”);pw.println(“在没有删除win属性前win 的值=”+ht.getAttribute(“win”)+”<br>”);// 从session中删除win属性ht.removeAttribute(“you”);ht.setMaxInactiveInterval(0);pw.println(“删除win属性后win 的值=”+ht.getAttribute(“win”)+”<br>”);pw.println(“删除win属性后me 的值=”+ht.getAttribute(“me”)+”<br>”);}catch(Exception e){e.printStackTrace();}}34.// 登录界面Login.javapackage com.ltl;import javax.servlet.http.*;import java.io.*;public class Login extends HttpServlet {// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res) {// 业务逻辑try{// 中文乱码处理res.setContentType("text/html;charset=gbk");PrintWriter pw=res.getWriter();// 返回登录界面pw.println("<html>");pw.println("<body>");// 得到error信息String info=reg.getParameter(“info”);if(info!=null){Pw.println(“<h1>你的用户名或是密码错误!</h1><br>”) }pw.println("<h1>登录界面</h1>");pw.println("<form action=loginCl Method=post>"); //表单pw.println("用户名:<input type=text name=username><br>");pw.println("密码:<input type=passwordname=password><br>");pw.println("<input type=submit value=login><br>");pw.println("</form>");pw.println("</body>");pw.println("</html>");}catch(Exception e){e.printStackTrace();}}// 用户验证servlet Loginprocess.javapackage com.ltl;import javax.servlet.http.*;import java.io.*;public class Loginprocess extends HttpServlet{// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res){// 业务逻辑try{// 接收用户名和密码String u=req.getParameter("username");String p=req.getParameter("password");// 验证if(u.equals("sq")&&p.equals("123")){// 合法// 将验证成功的信息,写入session// 得到sessionHttpSession hs=req.getSession(true);// 修改session的存在时间hs.setMaxInactiveInterval(20);hs.setAttribute(“pass”,”ok”);// 跳转到welcomeres.sendRedirect("welcome?username=”+u+”&password=”+p");// 用sendRedirect,会在地址栏显示出用户和密码,所以用sendRedirect传递的信息不是安全保密性级别很高的,可通过加密或者在session中少量地传输数据}else{// 不合法// 跳转res.sendRedirect("login"); // 写你要到的servlet的那个url }}catch(Exception e){e.printStackTrace();}}// 处理post请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doPost(HttpServletRequest req,HttpServletResponse res) {this.doGet(req,res);}}// 欢迎界面Welcome.javapackage com.ltl;import javax.servlet.http.*;import java.io.*;public class Welcome extends HttpServlet{// 处理get请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doGet(HttpServletRequest req,HttpServletResponse res){// 得到sessionHttpSession hs=req.getSession(true);String val=(String)hs.getAttribute(“pass”);// 判断if(val==null){try{// 非法登录res.sendRedirect(“login?info=error1”);}catch(Exception e){e.printStackTrace();}}// 得到从loginprocess传递的用户名//String u=req.getParameter(“username”);// 得到从loginprocess传递的密码//String p=req.getParameter(“password”);// 业务逻辑try{res.stcharacterEncoding(“gbk”);PrintWriter pw=res.getWriter();pw.println("welcome hello<br>");pw.println(“你的用户名是:”+val);// 做过超链接Pw.println(“<br><a href=login>返回重新登录</a>”);}catch(Exception e){e.printStackTrace();}}// 处理post请求// req 用于获得客户端(浏览器)的信息// res 用于向客户端(浏览器)返回信息public void doPost(HttpServletRequest req,HttpServletResponse res) {this.doGet(req,res);}}。