登錄砚哗、字符集過濾器

package com.good.domain;

public class User {

?? private Integer id;

?? private String username;

?? private String password;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

package com.good.controller;

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;

import com.good.domain.User;

import com.good.model.UserModel;

/**

* Servlet implementation class UserServlet

*/

@WebServlet("/UserServlet")

public class UserServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {

String username = request.getParameter("username");

String password = request.getParameter("password");

User user = new User();

user.setUsername(username);

user.setPassword(password);

UserModel userModel = new UserModel();

User existUser = userModel.login(user);

if(existUser == null) {

request.setAttribute("msg", "用戶名或密碼錯誤");

request.getRequestDispatcher("/login.jsp").forward(request, response);

}else {

request.getSession().setAttribute("exisetUser", existUser);

response.sendRedirect(request.getContextPath() + "/jsp/success.jsp");

}

} catch (Exception e) {

e.printStackTrace();

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

package com.good.model;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.BeanHandler;

import com.good.domain.User;

import com.good.utils.Utils;

/**

*

* @author 蘇佳星

*

*/

public class UserModel {

public User login(User user) throws SQLException {

QueryRunner queryRunner = new QueryRunner(Utils.getDataSource());

String sql = "select * from user where username=? and password=?";

User existUser = queryRunner.query(sql, new BeanHandler<User>(User.class),user.getUsername(),user.getPassword());

return existUser;

}

}

<%@ page language="java" contentType="text/html; charset=UTF-8"

? ? pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>登錄頁面</h1>

<h3><font color="red">${ msg }</font></h3>

<form action="${ pageContext.request.contextPath }/UserServlet" method="post">

? ? <table border="1" width="400">

?? <tr>

? ?? <td>用戶名</td>

? ? ? <td><input type="text" name="username"></td>

? ? </tr>

? ? <tr>

? ? ? ? <td>密碼</td>

? ? ? ? <td><input type="password" name="password"></td>

? ? ? ? </tr>

? ? ? ? <tr>

? ? ? ?? <td colspan="2"><input type="submit" value="登錄"></td>

</tr>

? </table>

</form>

</body>

</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"

? ? pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>您已經(jīng)成路饰及!歡迎:${ existUser.username }</h1>

<a href="${ pageContext.request.contextPath }/jsp/sub.jsp">提交數(shù)據(jù)</a>

</body>

</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"

? ? pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1></h1>

<form action="${ pageContext.request.contextPath }/ServletDemo1" method="get">

?? 姓名:<input type="text" name="name"><br>

?? <input type="submit" value="提交">

</form>

<h1></h1>

<form action="${ pageContext.request.contextPath }/ServletDemo1" method="get">

?? 姓名:<input type="text" name="name"><br>

?? <input type="submit" value="提交">

</form>

</body>

package com.good.controller;

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 ServletDemo1

*/

@WebServlet("/ServletDemo1")

public class ServletDemo1 extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

? String name = request.getParameter("name");

? System.out.println("GET方式接收的名稱:" + name);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String name = request.getParameter("name");

? System.out.println("POST方式接收的名稱:" + name);

}

}

package com.good.filter;

import java.io.UnsupportedEncodingException;

import javax.servlet.AsyncContext;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletRequestWrapper;

public class MyHttpServletRequest extends HttpServletRequestWrapper{

? ? private HttpServletRequest request;

public MyHttpServletRequest(HttpServletRequest request) {

super(request);

this.request = request;

}

@Override

public String getParameter(String name) {

? ? ? String method = request.getMethod();

? ? ? if("GET".equals(method)) {

? ? ? String value = super.getParameter(name);

? ? ? try {

//? ? ? value = new String(value.getBytes("ISO-8859-1"),"UTF-8");

? ? ? value = new String(value.getBytes("UTF-8"),"UTF-8");

? ? ? }catch(UnsupportedEncodingException e) {

? ? ? e.printStackTrace();

? ? ? }

? ? ? return value;

? ? ? }else if("POST".equals(method)) {

? ? ? try {

? ? ? request.setCharacterEncoding("UTF-8");

? ? ? }catch(UnsupportedEncodingException e) {

? ? ? e.printStackTrace();

? ? ? }

? ? ? }

?? return super.getParameter(name);

}

}

package com.good.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

public class GenericEncodingFilter implements Filter{

@Override

public void destroy() {

// TODO Auto-generated method stub

}

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;

? ? MyHttpServletRequest myReq = new MyHttpServletRequest(req);

? ? chain.doFilter(myReq, response);

}

@Override

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub

}

}

package com.good.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import com.good.domain.User;

public class MyPrivilegeFilter implements Filter{

@Override

public void destroy() {

// TODO Auto-generated method stub

}

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain Chain)

throws IOException, ServletException {

?? HttpServletRequest req = (HttpServletRequest) request;

?? User existUser = (User) req.getSession().getAttribute("existUser");

?? if(existUser == null) {

?? req.setAttribute("msg", "您還沒有登錄蔗坯!沒有權(quán)限訪問!");

?? req.getRequestDispatcher("/login.jsp").forward(request, response);

?? }else {

?? Chain.doFilter(request,response);

?? }

}

@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燎含,一起剝皮案震驚了整個濱河市宾濒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屏箍,老刑警劉巖绘梦,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赴魁,居然都是意外死亡谚咬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門尚粘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敲长,你說我怎么就攤上這事郎嫁。” “怎么了祈噪?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵泽铛,是天一觀的道長。 經(jīng)常有香客問我辑鲤,道長盔腔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任月褥,我火速辦了婚禮弛随,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宁赤。我一直安慰自己舀透,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布决左。 她就那樣靜靜地躺著愕够,像睡著了一般走贪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惑芭,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天坠狡,我揣著相機(jī)與錄音,去河邊找鬼遂跟。 笑死逃沿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的漩勤。 我是一名探鬼主播感挥,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼越败!你這毒婦竟也來了触幼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤究飞,失蹤者是張志新(化名)和其女友劉穎置谦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亿傅,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡媒峡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了葵擎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谅阿。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖酬滤,靈堂內(nèi)的尸體忽然破棺而出签餐,到底是詐尸還是另有隱情,我是刑警寧澤盯串,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布氯檐,位于F島的核電站,受9級特大地震影響体捏,放射性物質(zhì)發(fā)生泄漏冠摄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一几缭、第九天 我趴在偏房一處隱蔽的房頂上張望河泳。 院中可真熱鬧,春花似錦年栓、人聲如沸乔询。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竿刁。三九已至黄锤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間食拜,已是汗流浹背鸵熟。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留负甸,地道東北人流强。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像呻待,于是被迫代替她去往敵國和親打月。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容