Cookie完成自动登录及Config和ServletContext

来源:互联网 发布:如何安装ubuntu双系统 编辑:程序博客网 时间:2024/06/03 18:53
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>login.html</title>    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="this is my page">    <meta http-equiv="content-type" content="text/html; charset=UTF-8">        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  </head>    <body>    This is my HTML page. <br>    <div style="float:right;"><a href="myAccount">我的涂山</a></div><br/>    <form action="login" method="post">    userName<input type="text" name="userName"/><br/>    password<input type="password" name="password"/><br/>    <input type="checkbox" value="3" name="time"/>保存三个月 <input type="submit" value="提交"/>    </form>  </body></html>

package com.hehe.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");String userName=request.getParameter("userName");String password=request.getParameter("password");String time=request.getParameter("time");HttpSession session =request.getSession();response.setContentType("text/html ;charset=UTF-8");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");//获取ServletContext的方法ServletContext context=this.getServletContext();context=this.getServletConfig().getServletContext();context=request.getServletContext();context=request.getSession().getServletContext();Integer counter=(Integer)context.getAttribute("counter");if(counter==null){counter=0;}counter++;context.setAttribute("counter", counter);if(userName.equals(password)){session.setAttribute("userName", userName);session.setAttribute("password", password);out.println("你小子密码对了");if(time!=null){//向客户端发送cookieout.println("登陆成功保存三个月");Cookie c=new Cookie("userName",userName);c.setMaxAge(30*3*24*60*60);response.addCookie(c);//向客户端发送cookieCookie c1=new Cookie("password",password);c.setMaxAge(30*3*24*60*60);response.addCookie(c1);  }else{ out.println("登陆成功不保存");  }}else{//登陆失败out.println("密码错了重新<a href='login.html'>登陆</a>");}        out.println("你是第"+counter+"个小伙子");//换一个浏览器还是加        out.println("path:"+context.getRealPath("/"));//  /代表应用的根目录        out.println("contextpath:"+context.getContextPath());        out.println("contextName:"+context.getServletContextName());out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}}

package com.hehe.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class MyAccountServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");//是否登陆了HttpSession session=request.getSession();String userName=(String)session.getAttribute("userName");String password=(String)session.getAttribute("password");response.setContentType("text/html ;charset=UTF-8");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");if(userName!=null){out.println("  欢迎"+userName+"今天是您的生日");}else{//从cookie中获得userName和passwordCookie[] cc=request.getCookies();String name=null;String pwd=null;if(cc!=null){for(Cookie c:cc){if(c.getName().equals("userName")){name=c.getValue();}if(c.getName().equals("password")){pwd=c.getValue();}}}//是否存在用户的Cookieif(name!=null && pwd!=null){if(name.equals(pwd)){session.setAttribute("userName", name);session.setAttribute("password", pwd);out.println("完成自动登陆,用户名是:"+name);}else{out.println("cookie中有数据,但数据无效");}}else{out.println("您还没有登陆,请先登陆");}}out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}}

package com.hehe.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestConfigServlet extends HttpServlet {public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print("    This is ");out.print(this.getClass());out.println(", using the POST method");out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}public void init() throws ServletException {ServletConfig config=this.getServletConfig();System.out.println("-----------userName:"+config.getInitParameter("userName"));System.out.println("-----------password:"+config.getInitParameter("password"));}}
<servlet-mapping>    <servlet-name>LoginServlet</servlet-name>    <url-pattern>/login</url-pattern>  </servlet-mapping>  <servlet-mapping>    <servlet-name>TestConfigServlet</servlet-name>    <url-pattern>/config</url-pattern>  </servlet-mapping>  <servlet-mapping>


阅读全文
0 0