1.最基本的web登陸界面應用架構
在此案列中運用的是sendRedirect方法傳遞資訊
2.對應每個流程寫相應類
a.登陸界面編寫
package com.myfirstwebLogin;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Login extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
//中文亂碼
res.setContentType("text/html;charset=utf-8");
PrintWriter pw=res.getWriter();
//傳回登入頁面
pw.println("<html>");
pw.println("<body>");
pw.println("<h1>登入界面</h1>");
//action後面接跳轉的url
pw.println("<form action=logincheck method=post>");
pw.println("使用者名:<input type=text name=username><br>");
pw.println("密 碼:<input type=password name=password><br>");
pw.println("<input type=submit value=login><br>");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
}
catch(Exception ex){
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}
b.使用者資訊核對
package com.myfirstwebLogin;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginCheck extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
//接收使用者名和密碼
String username=req.getParameter("username");
String password=req.getParameter("password");
if(username.equals("tpx")&&password.equals("123456")){
//傳遞給welcome頁面username
res.sendRedirect("welcome?username="+username);
}
else{
//跳轉的url
res.sendRedirect("login");
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}
c.登陸成功頁面
package com.myfirstwebLogin;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Welcome extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
//業務邏輯處理
try{
//接收LoginCheck中的username
String username=req.getParameter("username");
PrintWriter pw=res.getWriter();
pw.println("Welcome"+" "+username);
}catch(Exception ex){
ex.printStackTrace();
}
}
//處理post請求
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}
3配置到伺服器
對應每個類都要配置在web.xml中
詳見web環境設定
4效果如下