JavaEE 学习中,Web-Servlet 简单登录页面(入口、处理、出口)(java 学习中的小记录)
JavaEE 学习中,Web-Servlet 简单登录页面(入口、处理、出口)(java 学习中的小记录)作者:王可利(Star·星星)
Web-Servlet 简单登录页面
这一章主要是熟悉,入口页面的登录效果,然后通过servlet来处理,最后把值传递给出口页面的过程。
附上代码(入口页面):
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>login.html</title> 5 6 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 7 <meta http-equiv="description" content="this is my page"> 8 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 9 10 <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> 11 12 </head> 13 14 <body> 15 <form action="loginUrl" method="post"> 16 17 用户名:<input type="text" name=username value=""/><br/> 18 19 密 码:<input type="text" name=pwd value=""/><br/> 20 <input type="submit" value="登录" > 21 22 <!-- 按钮button 按钮+提交 submit--> 23 24 25 </form> 26 27 <a href="loginUrl?username=star&pwd=123456">跳转到LoginServlet的doGet方法</a> 28 29 </body> 30 </html>
附上代码(处理过程界面是jsp格式):
1 package com.bw.test; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 public class LoginServlet extends HttpServlet { 11 @Override 12 protected void doGet(HttpServletRequest req, HttpServletResponse resp) 13 throws ServletException, IOException { 14 15 16 //涉及到编译汉字的时候出现乱码 17 req.setCharacterEncoding("utf-8");//控制台出现乱码的时候用 18 resp.setCharacterEncoding("utf-8");//输出页面出现乱码的时候用 19 20 21 System.out.println("进入doGet方法"); 22 23 } 24 25 @Override 26 protected void doPost(HttpServletRequest req, HttpServletResponse resp) 27 throws ServletException, IOException { 28 29 System.out.println("进入doPost方法"); 30 31 //涉及到编译汉字的时候出现乱码 32 req.setCharacterEncoding("utf-8");//控制台出现乱码的时候用 33 resp.setCharacterEncoding("utf-8");//输出页面出现乱码的时候用 34 35 36 System.out.println("进入doPost方法"); 37 38 //跳转到出口 跳转传递数据就用这个 39 //req.getRequestDispatcher("success.jsp").forward(req, resp); 40 //重新定向 跳转不传递数据就用这个 41 //resp.sendRedirect("success.html"); 42 43 //拿到登录输入的帐号密码 44 String userName=req.getParameter("username"); 45 String pwd = req.getParameter("pwd"); 46 47 //控制台输出帐号密码 48 System.out.println("账户:"+userName+"密码:"+pwd); 49 50 //保存数据(用jsp来做出口页面的话就要保存数据) 51 req.setAttribute("name",userName); 52 req.setAttribute("password", pwd); 53 54 55 //跳转并且可以传递数据 56 req.getRequestDispatcher("success.jsp").forward(req, resp); 57 } 58 }
附上代码(出口页面界面是jsp格式):
1 <%@ page pageEncoding="UTF-8"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>success.html</title> 7 8 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 9 <meta http-equiv="description" content="this is my page"> 10 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 11 12 <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> 13 14 </head> 15 16 <body> 17 注册的用户名:${ name },密码:${ password } 18 </body> 19 </html>
附上代码(web.xml的设置):
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file> 10 </welcome-file-list> 11 12 <servlet> 13 <servlet-name>LoginServlet</servlet-name> 14 <servlet-class>com.bw.test.LoginServlet</servlet-class> 15 </servlet> 16 17 <servlet-mapping> 18 <servlet-name>LoginServlet</servlet-name> 19 <url-pattern>/loginUrl</url-pattern> 20 </servlet-mapping> 21 22 </web-app>
自己需要注意的问题:
1.jsp服务器在使用的时候,记得是发布的服务器要和运行的服务器是一致的。
2.入口这里,method="post" 意思是当前的数据用post方法传递 在服务器端可用response.post("表单域名")来获得数据 而get方法传递的数据是可以在浏览器的地址栏明文传递的 很容易泄漏信息 并且传递的信息量不是很大(1024字节 IE) 而post方法可以传递更大信息量的数据,处理里面 走doGet方法用method="get",走doPost方法用method="post",
3.jsp文件处理的方法要放在doPost方法里面执行,doGet方法里面不可以。
4.jsp文件对于传进来的数据要先保存,然后再跳转数据 。
5.处理里面防止出现乱码,汉字编译不到要在前面先编译成utf-8的。
6.在输出界面要有<%@ page pageEncoding="UTF-8"%>不然会乱码。
附上代码(入口页面):
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>login.html</title> 5 6 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 7 <meta http-equiv="description" content="this is my page"> 8 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 9 10 <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> 11 12 </head> 13 14 <body> 15 <form action="loginUrl" method="get"> 16 17 用户名:<input type="text" name=username value=""/><br/> 18 19 密 码:<input type="text" name=pwd value=""/><br/> 20 <input type="submit" value="登录" > 21 22 <!-- 按钮button 按钮+提交 submit--> 23 </form> 24 25 <a href="loginUrl?username=star&pwd=123456">跳转到LoginServlet的doGet方法</a> 26 27 </body> 28 </html>
附上代码(处理过程界面是html格式):
1 package com.bw.test; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 public class LoginServlet extends HttpServlet { 11 @Override 12 protected void doGet(HttpServletRequest req, HttpServletResponse resp) 13 throws ServletException, IOException { 14 15 16 //涉及到编译汉字的时候出现乱码 17 req.setCharacterEncoding("utf-8");//控制台出现乱码的时候用 18 19 resp.setCharacterEncoding("utf-8");//输出页面出现乱码的时候 20 21 22 System.out.println("进入doGet方法"); 23 24 //跳转到出口 跳转传递数据就用这个 25 req.getRequestDispatcher("success.html").forward(req, resp); 26 //重新定向 跳转不传递数据就用这个 27 //resp.sendRedirect("success.html"); 28 29 //拿到登录输入的帐号密码 30 String userName=req.getParameter("username"); 31 String pwd = req.getParameter("pwd"); 32 33 //控制台输出帐号密码 34 System.out.println("账户:"+userName+"密码:"+pwd); 35 36 } 37 38 @Override 39 protected void doPost(HttpServletRequest req, HttpServletResponse resp) 40 throws ServletException, IOException { 41 42 System.out.println("进入doPost方法"); 43 } 44 }
附上代码(出口页面界面是html格式):
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>success.html</title> 5 6 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 7 <meta http-equiv="description" content="this is my page"> 8 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 9 10 <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> 11 12 </head> 13 14 <body> 15 成功了........<br/> 16 </body> 17 </html>
附上代码(web.xml):
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file> 10 </welcome-file-list> 11 12 <servlet> 13 <servlet-name>LoginServlet</servlet-name> 14 <servlet-class>com.bw.test.LoginServlet</servlet-class> 15 </servlet> 16 17 <servlet-mapping> 18 <servlet-name>LoginServlet</servlet-name> 19 <url-pattern>/loginUrl</url-pattern> 20 </servlet-mapping> 21 22 </web-app>
自己需要注意的问题:
web.xml 文件里面 红色中间的的部位要写在<web-app>的里面。
<servlet>里面的<servlet-name>是为<servlet-class>这个类取一个名字方便下面来给这个类赋一个新的名字
<servlet-mapping>里面的<servlet-name>要和前面的类的是一致的才行,<url-pattern>写类要改成的名字
然后输入网址的时候末尾就不是写类名了,就直接写<url-pattern>改成的名字,就可以调用这个类。