JAV EE Web 记住密码功能的实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dian0dian0/article/details/83449428

  • 实现记住密码功能,即用户在第一次登录时输入密码并正常登录后,在以后的一个月的时间内再次访问时不需要填写用户名和密码。

目录

知识讲解:

servlet相关知识:

Netbeans 8.2 问题及解决办法

代码:

jsp文件

servlet对应的java文件:

运行效果:



知识讲解:

servlet相关知识:

web.xml  对于WEB应用很重要,作为WEB应用与WEB容器交互的场所,他一定要位于应用的WEB-INF子目录下,我尝试删除了它,就会部署不成功。

<servlet> 节点用来指明servlet逻辑名称与java实现类之间的对应关系。

<servlet-mapping>节点用来指明servlet逻辑名称与java实现类之间的对应关系;

<welcome-file-list>节点指明请求Web应用程序时默认显示的欢迎页面。

详细查阅DTD。

Web容器正式根据.xml文件描述信息来操作web应用的。

可能你的项目下面没有生成.xml文件,一般是没有勾选自动生成.xml 的文件,可以 重新创建servle 在创建的过程中勾选改选项。

发布到服务器上的应用除了要包含自身实现的代码外,还要包括一个XMl文件

XML文件被称为部署描述文件,部署文件中详细的描述了应用中的组建需要调用的容器服务的名称,参数等.

Servlet 的编程接口:

HttpServletRequest 接口代表HttpServlet的请求。

HttpServleetResponse 接口代表HttpServlet返回客服机的响应。

ServletConfig 接口代表Servlet的配置信息。

ServletContext接口代表Servlet运行环境的信息。

ServletException 接口代表servlet运行过程中抛出的意外对象。

RequestDispatcher 接口是请求转发器。可以将客户端请求从一个servlet转发到另外其他的服务器资源,如其他的Servlet,页面等。

Netbeans 8.2 问题及解决办法:


1、新建一个JavaWeb项目:
“文件”->“新建项目”,在“类别”中选“Java Web”节点,在“项目”下选“Web 应用程序”,下一步,定义项目名称和项目位置(随便你取个什么名,放哪边都可以),下一步,服务器一般选用Tomcat(其他的也行),
Java EE版本:一般选Java EE5,下一步,框架:如果你不用框架就直接下一步,如果用,根据你自己需用选用,完成。
2、新建JSP文件:
NetBeans JavaWeb中会自动为用户新建一个index.jsp文件,可以在里面加内容
在项目中新建一个JSP文件: 点击项目名,右击,选“新建”->JSP
3、运行JSP:
a、直接右击你要运行的JSP文件,选“运行文件”
b、运行整个项目,菜单栏“运行”—>“运行项目”或在工具栏中找运行的按钮(但是要注意运行项目的的默认的起始JSP文件是index.jsp,如果要改,在“Web页”->“
WEB-INF”->“web.xml

改:
<welcome-file>index.jsp</welcome-file>的“index.jsp”为你想的起始页

或这样改:双击web.xml,在“页面”下,欢迎文件中,通过“浏览”选择你的起始页)

----------------------------------------------------------------
另外:我们一般用Tomcat服务器,在下载NetBeans是时候一般下all版本的,在装NetBeans的时候,的“定制”,勾选上Tomcat,这样就安装啦Tomcat,而且会自动的为我们配置好,如果你单独安装,要在“服务”窗口下选“服务器”右击添加服务器。。。


根据上面的提示,我想新建一个jsp 文件并不行,并抛出了警告

解决办法:

删除原来创建的项目,在创建的项目的时候选择JAVA  EE5.----》如下图所示 (JAVA  EE 7 WEB 默认是是创建index.html,但是要编写记住密码的程序我会使用java语言,所以必须要用jsp。

开始进入正题:开始些作业了,我真的觉得过程复杂。哼~~!~~

我选择了java ee 5之后,感觉变了很多,.xml文件多了很多,不知道为什么,目前这里还是很迷:

更神奇的是这段代码也有了,原来的找了半天都没有,而且我自己加了这段代码还是显示起初创建的.html页面,造化弄人:

代码:

jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
	<head>
		<base href="<%=basePath%>">
 
		<title>My JSP 'cookie.jsp' starting page</title>
		<link rel="stylesheet" type="text/css" href="styles.css">                 
                <title><欢迎登陆中南民族大学信息门户</title>
                <meta charset="UTF-8">
                <meta name="viewport" content="text/html; width=device-width,initial-scale=1.0; charset = gb2312">
                <style type="text/css">
                body{text-align:center }
                body{line-height:2}
                body {background:url("background.jpg"); background-repeat:no-repeat;background-size:  cover }
               </style>
	</head> 
	<body>
		<center>
			<form action="CookieServlet" method="post">
                            <div> <p align="center" > <font size = "7" >欢迎登陆中南民族大学信息门户</font></p> </div>
				<%
					String username = null;
					String userpwd = null;
					Cookie[] cookies = request.getCookies();
					for (int i = 0; i < cookies.length; i++) {
						if (cookies[i].getName().equals("userinfo")) {
							//存着数据(用户名+密码)
							username = cookies[i].getValue().split("-")[0];
							userpwd = cookies[i].getValue().split("-")[1];
							//再一次的存起来(备用)
							request.setAttribute("xingming", username);
							request.setAttribute("mima", userpwd);
						}
                                        }
				%>
 
				用户名:
				<input style="width:150px;height:20px;background-color:orange;"  type="text" name="username" placeholder="请输入用户名"
					value="${xingming }" />
				<br>
				<br>
				用户名:
				<input style="width:150px;height:20px;background-color:orange;" type="password" name="password" placeholder="请输入密码"
					value="${mima }" />
				<br>
				<br>
				<input   type="checkbox" name="ck">
				记住用户名和密码
				<br>
				<br>
				<input type="submit" value="登陆" />
                                <br>
                                <a href ="http://www.scuec.edu.cn/jky/">中南民族大学计算机科学学院</a> 
			</form>
 
		</center>
	</body>
</html>

需要自己选择一张背景图,取名叫background.jpg

servlet对应的java文件:


import static com.sun.corba.se.spi.presentation.rmi.StubAdapter.request;
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
@WebServlet(value="/CookieServlet")

public class cookie_servlet extends HttpServlet {
 
	private static final long serialVersionUID = 1L;
         protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType("text/html;charset=gb2312");
        request.setCharacterEncoding("gb2312");
      

        PrintWriter out = response.getWriter();
        {
            String name = request.getParameter("myName");
            String password = request.getParameter("pass");
            /* TODO output your page here. You may use following sample code. */
           /* out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet First</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<L1><B>username</B>:"+
                    request.getParameter("myName")
                    +"<L1><B>password</B>:"+"\n"+
                    request.getParameter("pass"));
            
            out.println("</body>");
            out.println("</html>");*/
           out.println(
                   "<BODYBGCOLOR=\"#FDF5E6\">\n"+
                   "<H1 ALIGN-CENTER>"+"get post data"+"</H1>\n"+
                   "<UL>\n"+
                /*   "<L1><B>username</B>:"+
                    request.getParameter("myName")
                    +"<L1><B>password</B>:"+"\n"+
                    request.getParameter("pass")+*/
                    "</BODY></HTML>");
                 } 
            
            }
 
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
            processRequest(req, resp);
    }
       
 
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
                processRequest(req, resp);
		String username = req.getParameter("username");
		String password = req.getParameter("password");
		String ck = req.getParameter("ck");
		if("on".equals(ck)){
		
			// 构造Cookie对象
			// 添加到Cookie中
			Cookie cookie = new Cookie("userinfo", username + "-" + password);
 
			// 设置过期时间
			cookie.setMaxAge(7*24*60*60);
 
			// 存储
			resp.addCookie(cookie);
                               
		
                      
			
		}
	}

}

运行效果:

作业不到要交的一天是写不好的。

猜你喜欢

转载自blog.csdn.net/Dian0dian0/article/details/83449428
jav
ee