servlet---用户登录验证欢迎
2016-04-04 10:26
225 查看
登录:
package com.company.project; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //这个程序有个问题:不验证的访问也可以登录到欢迎界面 //解决办法就是本次的session的方法解决 //session就是保存了已经操作过的数据,再次操作的时候去对比 //这个版本的验证必须要和上一个版本对比 //0.2版本登录后复制网址到其他的浏览器上转到,可以直接跳转到wel界面 //0.3版本登录后复制网址到其他的浏览器上转到,不能直接跳转到wel界面上去 //上面的是验证试验,保存了登录过的密码的内存区域已经被session保卫了 //session 的理解=键值对(名字String,值Object) //cookie是在客户端,session是在服务端 //这个版本:登录控制(密码有效可以登录) //页面跳转:login到wel的跳转,logincl不显示页面 //session控制页面刷新时间30s //session的两个发送信息的方式 public class Login extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/html; charset=GBK"); try { PrintWriter pw = res.getWriter(); pw.println("<html>"); pw.println("<body>"); pw.println("<h1>登录界面</h1>"); pw.println("<form action=logincl methon=post>"); pw.println("用户名:<input type=text name=usrname><br>"); pw.println("密码:<input type=password name=passwd><br>"); pw.println("<input type=submit value=loing><br>"); pw.println("</form>"); pw.println("</body>"); pw.println("</html>"); } catch (IOException e) { e.printStackT 4000 race(); } } }
验证:
package com.company.project; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginCL extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/html; charset=GBK"); try { // 接受登录表单req中的用户名和密码 String u = req.getParameter("usrname"); String p = req.getParameter("passwd"); // 验证:如果密码正确跳转到wel页面,如果不正确继续在登录页面 // 验证正确了,要用到session控制页面 if (p.equals("123")) { // --------------------------------------------------------- // 这个servlet就是在写入一个session,等着下一个程序去读session // 得到session的表 HttpSession hs = req.getSession(true); String sessionID = hs.getId(); // 修好session的存在时间30s // 等一会30s内刷新窗口有效,不然就要重新登录 hs.setMaxInactiveInterval(30); hs.setAttribute("pass", "OK"); hs.setAttribute("NotPass", "NotOK"); // --------------------------------------------------------- // 跳转到wel页面,并且共享数据u res.sendRedirect("wel?uname=" + u + "&upass=" + p + "&mysessionID=" + sessionID); } else { res.sendRedirect("login");// 跳转的servlet的url } } catch (IOException e) { e.printStackTrace(); } } }
欢迎
package com.company.project; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class Wel extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse res) { res.setContentType("text/html; charset=GBK"); // session处理---------------------------------------------- HttpSession hs = req.getSession(true); String val = (String) hs.getAttribute("pass"); String val2 = (String) hs.getAttribute("NotPass"); if (val == null) { // 非法登录 try { res.sendRedirect("login"); } catch (IOException e) { e.printStackTrace(); } } // 显示在页面上---------------------------------------------- String u = req.getParameter("uname"); String p = req.getParameter("upass"); String s = req.getParameter("mysessionID"); try { PrintWriter pw = res.getWriter(); pw.println("Welcome, hello!"); pw.println("\n" + u); pw.println("\n" + p); pw.println("\n" + s); pw.println("\n" + val2); } catch (IOException e) { e.printStackTrace(); } } }
web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>student</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>login</servlet-name> <servlet-class>com.company.project.Login</servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <servlet-name>logincl</servlet-name> <servlet-class>com.company.project.LoginCL</servlet-class> </servlet> <servlet-mapping> <servlet-name>logincl</servlet-name> <url-pattern>/logincl</url-pattern> </servlet-mapping> <servlet> <servlet-name>wel</servlet-name> <servlet-class>com.company.project.Wel</servlet-class> </servlet> <servlet-mapping> <servlet-name>wel</servlet-name> <url-pattern>/wel</url-pattern> </servlet-mapping> </web-app>
运行结果:
相关文章推荐
- servlet---用户登录验证欢迎
- 微软想做apple和google的的混合体
- HDOJ 1425-sort
- win7 64位操作系统中 Oracle 11g 安装教程(图解)
- Nginx常用日志分割方法
- Android 如何自定义控件(继承View)
- c++ 版的蛇形矩阵,正方形的,从数字1开始逐渐增大,呈回字形
- const关键字
- 移位(左移,右移和无符号右移)
- Nginx常用日志分割方法
- Nginx常用日志分割方法
- MySQL常用命令
- const 相关
- 循环引用的weak和assgin
- iOS应用启动原理图解 及ARC强弱引用
- 70. Climbing Stairs
- SpringMvc自定义拦截器
- lintcode-medium-Perfect Squares
- 远程包含和本地包含漏洞的原理
- R0多线程