1.分析:
1袁勺、注冊功能
(1)前端
1.注冊表單柱徙、用戶名缓屠、密碼、單選护侮、復(fù)選敌完、下拉列表控件編寫
2.action屬性跳轉(zhuǎn)到后臺;name屬性傳參數(shù)到后臺
(2)后臺
1.新建注冊Servlet羊初,用request接收參數(shù)滨溉;response返回數(shù)據(jù)到前端
(3)處理亂碼
1.request的doGet請求:new String(username.getBytes("iso-8859-1"), "utf-8");
2.response的doGet/doPost請求:response.setContentType("text/html;charset=utf-8");
3.request的doPost請求:request.setCharacterEncoding("utf-8");
(4)doGet與doPost區(qū)別
1.doGet將參數(shù)從url中傳到后臺,不安全长赞,性能高晦攒;只能傳文本參數(shù)
2.doPost以請求體方式傳到后臺,安全得哆,性能低脯颜;可以傳文本及二進制
2、登錄功能
(1)前端控件的編寫贩据,action屬性跳到LoginServlet
(2)后臺判斷登錄是否成功
2.實現(xiàn)代碼
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.doGet/doPost的response的亂碼:
response.setContentType("text/html;charset=utf-8");
//3.doPost的request的亂碼
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
if("zs".equals(username)&&"123".equals(password)){
response.getWriter().write("登錄成功");
}else{
response.getWriter().write("登錄失敗 ");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//注意: 往往亂碼處理盡可能放到最上面
//1.doGet/doPost的response的亂碼:
response.setContentType("text/html;charset=utf-8");
//3.doPost的request的亂碼
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
//2.doGet的request的亂碼
//username = new String(username.getBytes("iso-8859-1"),"utf-8");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String[] loves = request.getParameterValues("loves");
String province = request.getParameter("province");
System.out.println(username+"--"+password+"--"+sex);
System.out.println(Arrays.toString(loves)+"--"+province);
if("zs".equals(username)){
response.getWriter().write("已注冊~栋操!");
}else{
response.getWriter().write("3秒后自動跳轉(zhuǎn)到登錄頁面闸餐!");
response.setHeader("refresh", "3;url='login.html'");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost....");
doGet(request, response);
}
}
3.前端
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>用戶-登錄</h2>
<form action="LoginServlet" method="post">
用戶名:<input type="text" name="username"? /><br/>
密碼:<input type="password" name="password" /><br/>
<input type="submit" value="提交" />
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>用戶-注冊</h2>
<!-- action屬性:跳轉(zhuǎn)頁面或者映射路徑
? method屬性:默認為doget請求
-->
<form action="RegisterServlet" method="post">
? ? <!-- name屬性:參數(shù)名,value屬性,參數(shù)值-->
用戶名:<input type="text" name="username"? /><br/>
密碼:<input type="password" name="password" /><br/>
性別:<input type="radio" name="sex" value="man" />男
? ? <input type="radio" name="sex" value="woman" />女<br/>
愛好:<input type="checkbox" name="loves" value="basketball" />籃球
? ? <input type="checkbox" name="loves" value="football" />足球<br/>
省份:<select name="province">
<option value="hunan">湖南</option>
<option value="hubei">湖北</option>
<option value="guangdong">廣東</option>
<option value="guangxi">廣西</option>
? ? </select><br/>
<input type="submit" value="提交" />
</form>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="register.html">注冊</a>
<a href="login.html">登錄</a>
</body>
</html>
4.web.XML配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
? <display-name>Day27_Tomcat_Servlet</display-name>
? <welcome-file-list>
? ? <welcome-file>welcome.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>aa</servlet-name>
? ? <servlet-class>com.qf.servlet.HelloServlet</servlet-class>
? </servlet>
? <servlet-mapping>
? ? <servlet-name>aa</servlet-name>
? ? <url-pattern>/bb</url-pattern>
? </servlet-mapping>
? <servlet>
? ? <description></description>
? ? <display-name>StandardServlet</display-name>
? ? <servlet-name>StandardServlet</servlet-name>
? ? <servlet-class>com.qf.servlet.StandardServlet</servlet-class>
? </servlet>
? <servlet-mapping>
? ? <servlet-name>StandardServlet</servlet-name>
? ? <url-pattern>/StandardServlet</url-pattern>
? </servlet-mapping>
? <servlet>
? ? <description></description>
? ? <display-name>RegisterServlet</display-name>
? ? <servlet-name>RegisterServlet</servlet-name>
? ? <servlet-class>com.qf.servlet2.RegisterServlet</servlet-class>
? </servlet>
? <servlet-mapping>
? ? <servlet-name>RegisterServlet</servlet-name>
? ? <url-pattern>/RegisterServlet</url-pattern>
? </servlet-mapping>
? <servlet>
? ? <description></description>
? ? <display-name>LoginServlet</display-name>
? ? <servlet-name>LoginServlet</servlet-name>
? ? <servlet-class>com.qf.servlet2.LoginServlet</servlet-class>
? </servlet>
? <servlet-mapping>
? ? <servlet-name>LoginServlet</servlet-name>
? ? <url-pattern>/LoginServlet</url-pattern>
? </servlet-mapping>
</web-app>