servlet實現登陸註冊
阿新 • • 發佈:2017-08-21
object form tor exce logs content () color att
有返回值類型的方法一定加return
拿到信息必須進行非空驗證
用servlet做註冊登陸時,在form表單的action中不用加後綴.java,jsp文件需要加
public boolean CheckParm(String...args){
for(String s:args){
if("".equals(s)||s==null){
return false;
}
}
return true;
}
當不確定傳入的參數個數是可以用String...args,表示多參數傳入
有返回值類型的方法一定加return
在servlet裏面執行的代碼寫在doget方法中
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
防止輸出出現亂碼的代碼表示
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="TextServlet" method="post"> <input type="text" name="username" placeholder="請輸入用戶名"/><br> <input type="text" name="password" placeholder="請輸入密碼"/><br> <input type="text" name="password1" placeholder="請再次輸入密碼"/><br> <input type="text" name="realname" placeholder="請輸入真實名字"/><br> <input type="submit" value="提交"/> <a href="login.jsp"> 超級鏈接</a> </form> </body> </html>
註冊的servlet類
package com.hanqi.textservlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class TextServlet */ @WebServlet("/TextServlet") public class TextServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public TextServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); String password1 = request.getParameter("password1"); String realname = request.getParameter("realname"); response.getWriter().append("username:"+username+"password:"+password+"realname:"+realname); if(CheckParm(username,password,password1)){ if(password.equals(password1)){ Object obj=request.getServletContext().getAttribute(username); if(obj==null){ request.getServletContext().setAttribute(username, username); request.getServletContext().setAttribute(password, password); response.sendRedirect("message.jsp?code=1"); }else{ response.sendRedirect("message.jsp?code=4"); } }else{ response.sendRedirect("message.jsp?code=3"); } }else{ response.sendRedirect("message.jsp?code=2"); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } public boolean CheckParm(String...args){ for(String s:args){ if("".equals(s)||s==null){ return false; } } return true; } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="LoginServlet" method="post"> <input type="text" name="username" placeholder="請輸入用戶名"/><br> <input type="text" name="password" placeholder="請輸入密碼"/><br> <input type="submit" value="登陸"/> </form> </body> </html>
登陸的servlet類
package com.hanqi.textservlet; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); String username=request.getParameter("username"); String password=request.getParameter("password"); ServletContext application=request.getServletContext(); Object obj=application.getAttribute(username); Object ob=application.getAttribute(password); if(obj!=null){ String user=(String)obj; if(username.equals(user)){ if(password.equals(ob)){ response.sendRedirect("index.jsp"); }else{response.sendRedirect("message.jsp?code=7");} }else{ response.sendRedirect("message.jsp?code=5"); } }else{ response.sendRedirect("message.jsp?code=6"); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
未按要求輸入的提示頁面的實現
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% String code=request.getParameter("code"); if("1".equals(code)){ out.print("<h1>註冊成功!</h1>"); }if("2".equals(code)){ out.print("<h1>信息輸入不完整!</h1>"); }if("3".equals(code)){ out.print("<h1>輸入的密碼不一致!</h1>"); }if("4".equals(code)){ out.print("<h1>用戶已經存在!</h1>"); }if("5".equals(code)){ out.print("<h1>用戶名錯誤!</h1>"); }if("6".equals(code)){ out.print("<h1>用戶不存在!</h1>"); }if("7".equals(code)){ out.print("<h1>密碼錯誤!</h1>"); } %> </body> </html>
servlet實現登陸註冊