1. 程式人生 > >Request應用之實現註冊功能

Request應用之實現註冊功能

1、註冊分析

要實現註冊 首先要先獲取註冊的資訊
之後將獲取註冊的資訊匯入到資料庫中

在這裡插入圖片描述
2、註冊實現

1.註冊頁面的實現
這裡要注意表單form需要有action和method 以及每個表單元素要有name
2.獲取表單的資料
3.將資料儲存到資料庫中

3、程式碼實現

public class RegisterServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Map<String, String[]> parameterMap = request.getParameterMap();
		User user = new User();
		try {
			//使用BeanUtils進行自動對映封裝
			//BeanUtils工作原理:將map中的資料 根據key與實體的屬性的對應關係進行封裝
			//只要key的名字與實體的屬性的名字一樣 就自動封裝到實體中
			BeanUtils.populate(user, parameterMap);
		} catch (Exception e) {
			e.printStackTrace();}
		//現在user物件已經封裝好了
		//手動封裝uid UUID 隨機不重複的32位 java生成是36位 因為加了四個- 可能會超出
		user.setUid(UUID.randomUUID().toString());
		register(user);
	}
	public void register(User user) {
		//操作資料庫
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		String sql = "insert into user values(?,?,?,?,?,?,?,?,?,?)";
		try {
			qr.update(sql, user.getUid(),user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),null,user.getBirthday(),user.getSex(),null,null);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

4、解決亂碼問題
在這裡插入圖片描述

post亂碼的解決:
request.setCharacterEncoding("UTF-8");
get亂碼的解決 也是通用方法:
String username = request.getParameter("username");
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");

5、這裡跳轉切記 不要用轉發 要用重定向 因為網址不會變 重新整理後還是原頁面

response.SendRedict(request.getContentPath()+"/login.jsp");