註冊登錄案例注意事項(day14)

1.路徑問題

客戶端路徑:需要項目名

Jsp中表單action:
<form action="${pageContext.request.contextPath }/RegistServlet" method="post">
<form action="<c:url value="/RegistServlet"/>" method="post">
Jsp中圖片src:
<img id="vCode" src='<c:url value="/VerifyCodeServlet"></c:url>' border="2">
<a>標籤href:
response.getWriter().write("註冊成功!<h3><a href='"+request.getContextPath()+"/user/login.jsp'>點擊登陸</a></h3>");
Servlet中重定向:
response.sendRedirect(request.getContextPath()+"/user/welcome.jsp");

服務端路徑:不用項目名

Servlet中請求轉發:
request.getRequestDispatcher("/user/regist.jsp").forward(request, response);

2.request和session域

request:

/ 請求編碼
request.setCharacterEncoding("utf-8");
/ 從request域獲取表單數據,並封裝到對象
User form = CommonUtils.toBean(request.getParameterMap(), User.class); 
/ 錯誤信息存在request域,用於提示錯誤
request.setAttribute("errorMap", errorMap);
/ 輸入的表單數據存回request域,用於回顯
request.setAttribute("user", form);  

session:

/ 真實驗證碼存到session域,用於與提交驗證碼比較
/(因爲產生驗證碼和註冊提交不是一個請求,所以不能存在request域)
request.getSession().setAttribute("session_vcode", vc.getText());
/ 查詢到的數據庫客戶信息存到session域,用於welcome頁面顯示
/(重定向是兩個請求,所以不能存在request域)
request.getSession().setAttribute("sessionUser", user);

3.編碼

JSP頁面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

Post請求:

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 請求編碼
		request.setCharacterEncoding("utf-8");
		// 響應編碼
		response.setContentType("text/html;charset=utf-8");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章