您的位置:首页 > 其它

servlet---用户登录验证欢迎

2016-04-04 10:26 211 查看

登录:

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>


运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: