servlet学习
标签: servlet
/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
*/
最近在学习servlet,用原生的servlet写了一个简单的登录注册,在此记录一下,目录结构:
登录
LoginServlet—登录界面
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
/**
* Created by Fate on 2016/7/1.
*/
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
OutputStream outputStream = resp.getOutputStream();
String response = "<html>\n" +
"<head>\n" +
" <title>LoginServlet</title>\n" +
"<meta charset=\"utf-8\">" +
"</head>\n" +
"<body>\n" +
"<form action=\"loginControllerServlet\" method=\"post\">\n" +
" <input name=\"username\" placeholder=\"please enter your name\" type=\"text\">\n" +
" <input name=\"password\" placeholder=\"please enter password\" type=\"password\">\n" + "</br>" +
" <input type=\"submit\" value=\"submit\">\n" +
" <input type=\"reset\" value=\"reset\">\n" +
"<span>don't have account?</span>" +
"<a href=\"registerServlet\">Now register!</a>" +
"</form>\n" +
"</body>\n" +
"</html>";
outputStream.write(response.getBytes());
outputStream.close();
}
}
LoginControllerServlet—登录管理
package controller;
import service.LoginService;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by Fate on 2016/7/1.
*/
public class LoginControllerServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
LoginService LoginService = new LoginService();
boolean result = LoginService.login(username, password);
if (result) {
resp.sendRedirect("welcomeServlet");
return;
}
resp.sendRedirect("loginServlet");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}
LoginService—登录业务处理
package service;
import util.ConnectionUtil;
import java.sql.*;
/**
* Created by Fate on 2016/7/4.
*/
public class LoginService {
public boolean login(String name, String password) {
String sql = "select * FROM user where name=? and password=?";
Connection connection = ConnectionUtil.getConnetion();
PreparedStatement pstmt = null;
ResultSet resultSet = null;
try {
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, password);
resultSet = pstmt.executeQuery();
return resultSet.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (pstmt != null) {
pstmt.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
}
WelcomeServlet—登录成功
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
/**
* Created by Fate on 2016/7/1.
*/
public class WelcomeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
OutputStream outputStream = resp.getOutputStream();
String response = "<html>\n" +
"<head>\n" +
" <title>welcome</title>\n" +
"</head>\n" +
"<body>\n" +
"welcome\n" +
"</body>\n" +
"</html>";
outputStream.write(response.getBytes());
outputStream.close();
}
}
注册
RegisterServlet
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
/**
* Created by Fate on 2016/7/4.
*/
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
OutputStream outputStream = resp.getOutputStream();
String response = "<html>\n" +
"<head>\n" +
" <title>register</title>\n" +
"<meta charset=\"utf-8\">" +
"</head>\n" +
"<body>\n" +
"<form action=\"registerControllerServlet\" method=\"post\">\n" +
" <input name=\"username\" placeholder=\"please enter your name\" type=\"text\">\n" +
" <input name=\"password\" placeholder=\"please enter password\" type=\"password\">\n" +
" <input name=\"age\" placeholder=\"please enter password\" type=\"password\">\n" + "</br>" +
" <input type=\"submit\" value=\"submit\">\n" +
" <input type=\"reset\" value=\"reset\">\n" +
"</form>\n" +
"</body>\n" +
"</html>";
outputStream.write(response.getBytes());
outputStream.close();
}
}
RegisterControllerServlet
package controller;
import service.RegisterService;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by Fate on 2016/7/4.
*/
public class RegisterControllerServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
int age = Integer.parseInt(req.getParameter("age"));
RegisterService register = new RegisterService();
boolean result = register.register(username, password, age);
if (result) {
resp.sendRedirect("welcomeServlet");
return;
}
resp.sendRedirect("registerServlet");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}
RegisterService
package service;
import util.ConnectionUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* Created by Fate on 2016/7/4.
*/
public class RegisterService {
public boolean register(String username, String password, int age) {
String sql = "INSERT INTO user (name,password,age) VALUES (?,?,?)";
Connection connection = ConnectionUtil.getConnetion();
try {
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
pstmt.setInt(3, age);
int result = pstmt.executeUpdate();
if (result != 1) {
pstmt.close();
connection.close();
return false;
}
pstmt.close();
connection.close();
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
}
数据库连接
ConnectionUtil—使用静态方法jdbc连接
package util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* Created by Fate on 2016/7/4.
* use Static Method to create jdbc connection
*/
public class ConnectionUtil {
private static final String URL = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8";
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnetion() {
Connection connection = null;
try {
connection = DriverManager.getConnection(URL, "root", "123456");
} catch (SQLException e) {
LOGEER.info("getConnection failed");
e.printStackTrace();
}
System.out.println("get jdbc connection seccess");
return connection;
}
}
配置文件
web.xml—配置servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LoginCl</servlet-name>
<servlet-class>controller.LoginControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginCl</servlet-name>
<url-pattern>/loginControllerServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>welcome</servlet-name>
<servlet-class>servlet.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>welcome</servlet-name>
<url-pattern>/welcomeServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>registerServlet</servlet-name>
<servlet-class>servlet.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>registerServlet</servlet-name>
<url-pattern>/registerServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>registerCL</servlet-name>
<servlet-class>controller.RegisterControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>registerCL</servlet-name>
<url-pattern>/registerControllerServlet</url-pattern>
</servlet-mapping>
</web-app>