使用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>
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();
}
}
}
<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();
}
}
}
相关文章推荐
- 【MVC】使用Servlet 作为控制器实现一个简单的登陆验证
- 使用 Servlet 作为控制器,标准MVC模式
- 使用 Servlet 作为控制器,标准MVC模式
- JSP使用Servlet作为控制器实现MVC模式实例详解
- 使用Servlet作为控制器
- JSP使用Servlet作为控制器实现MVC模式实例详解
- 使用Servlet作为控制器的的MVC的应用-登录验证
- JSP培训(6)——使用Servlet作为控制器实现MVC模式
- JSP培训(6)——使用Servlet作为控制器实现MVC模式
- JSP使用Servlet作为控制器实现MVC模式实例详解[转]
- 使用Servlet作为控制器
- (01)Struts2_使用 Filter 作为控制器的 MVC 应用
- 13. SpringMVC_使用Servlet原生API作为参数
- 10008---SpringMVC 使用 Servlet API 作为入参
- Spring MVC前台使用html页面作为视图,配置静态资源后Controller控制器不起作用的解决办法
- 10001---使用 Filter 作为控制器的 MVC
- struts2-(1)使用Filter作为控制器
- Spring MVC使用POJO以及servlet原生api作为参数
- 使用filter作为控制器的MVC
- SpringMVC-04 使用Servlet原生的API作为参数