您的位置:首页 > 其它

使用servlet作为控制器

2016-10-17 22:49 295 查看
login.jsp

<body>
<form action="/login">
用户名:
<input type="text" name="username">
密码:
<input type="password" name="pass">
<input type="submit">
</form>

<%
//输出错误提示信息
if(request.getAttribute("err")!=null){
out.println(request.getAttribute("err"));
}
%>

</body>

@WebServlet(name="login",urlPatterns="/login")
public class LoginServlet extends HttpServlet {

@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String errMsg="";
RequestDispatcher rd;
String username=request.getParameter("username");
String pass=request.getParameter("pass");
try{
Db db=new Db("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/jdbc", "root", "");
//查询结果集
ResultSet rs=db.query("select pass from tb_user where name=?", username);
if(rs.next()){
if(rs.getString("pass").equals(pass)){
HttpSession session=request.getSession();
session.setAttribute("name", username);
//获取转发对象
rd=request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);
}else{
errMsg+="用户名和密码不匹配";
}
}else{
errMsg+="您的用户名不符合,请重新输入";
}

}catch(Exception e){
e.printStackTrace();
}

if(errMsg!=null && errMsg.equals("")){
rd=request.getRequestDispatcher("/login.jsp");
request.setAttribute("err", errMsg);
rd.forward(request, response);
}

}
}


package com.xxx.domain;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Db {

private Connection conn;
private String driver;
private String url;
private String username;
private String pass;

public Db() {
}

public Db(String driver, String url, String username, String pass) {
super();
this.driver = driver;
this.url = url;
this.username = username;
this.pass = pass;
}

public String getDriver() {
return driver;
}

public void setDriver(String driver) {
this.driver = driver;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPass() {
return pass;
}

public void setPass(String pass) {
this.pass = pass;
}

/**
* 获取数据库连接
* @throws SQLException
* @throws ClassNotFoundException
*/
public Connection getConnection() throws SQLException, ClassNotFoundException{
if(this.conn==null){
Class.forName(this.driver);
conn=DriverManager.getConnection(this.url, this.username, this.pass);
}
return conn;
}

/**
* 插入数据
* @param sql
* @param args
* @return
* @throws SQLException
* @throws ClassNotFoundException
*/
public boolean insert(String sql,Object ...args) throws SQLException, ClassNotFoundException{
PreparedStatement pstmt=this.getConnection().prepareStatement(sql);
for(int i=0;i<args.length;i++){
pstmt.setObject(i+1, args[i]);
}
if(pstmt.executeUpdate()!=1){
return false;
}
return true;
}

/**
* 查询数据
* @param sql
* @param args
* @return
* @throws SQLException
* @throws ClassNotFoundException
*/
public ResultSet query(String sql,Object ...args) throws SQLException, ClassNotFoundException{
PreparedStatement pstmt=this.getConnection().prepareStatement(sql);
for(int i=0;i<args.length;i++){
pstmt.setObject(i+1, args[i]);
}
return pstmt.executeQuery();
}

/**
* 更新数据
* @param sql
* @param args
* @return
* @throws SQLException
* @throws ClassNotFoundException
*/
public boolean update(String sql,Object ...args) throws SQLException, ClassNotFoundException{
PreparedStatement pstmt=this.getConnection().prepareStatement(sql);
for(int i=0;i<args.length;i++){
pstmt.setObject(i+1, args[i]);
}
if(pstmt.executeUpdate()!=1){
return false;
}
return true;
}

/**
* 关闭数据库连接
* @throws SQLException
*/
public void closeConn() throws SQLException{
if(conn!=null && !conn.isClosed()){
conn.close();
}
}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: