新建一个servlet项目
Flies --> new --> project-->ProjectSDK选择自己的JDK文件-->勾选Web Appliction -->Next
项目构造如下:
设置项目配置
File --> Project Structure (快捷键:Ctrl + Shift + Alt + S) --> 选择Module :
配置Tomcat
红色框选择时,运行成功会会自动运行下方的URL链接
测试运行
出现如下便创建成功
编写第一个Servlet代码,测试环境是否设置成功
@WebServlet("/firstServlet")
public class test extends HttpServlet {
private String message;
@Override
public void init() throws ServletException {
message = "第一个servlet";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
// response.setContentType("text/html");
response.setHeader("Content-type","text/html;charset=UTF-8");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("
" + message + "
");}
public void destroy()
{
// 什么也不做
}
}
注解@WebServlet是设置该类的URL,也可以在web.xml里设置,如下:
test//设置该servlet的名字,可以随便定义
test.test//对应的java的文件(包名.类名)
test//上面定义的名字
/HelloWorld//自己定义URL
运行Tomcat,打开浏览器输入http://localhost:8080/firstServlet或者http://localhost:8080/HelloWorld结果:
开始编写登陆注册模板
首先要先配置JDBC,编写连接数据库工具类
资源:mysql-connector-java-5.1.39-bin.jar
链接:http://note.youdao.com/notesh...
public class connectionUtil {
private static String driver;
private static String url;
private static String username;
private static String password;
static {
try {
//获取配置文件的信息
driver = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://localhost:3306/test";
username = "root";
// password = "admin";
password = "touwen";
//加载驱动类
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,username,password);
}
public static void release(Connection connection, Statement statement, ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
编写注册登录逻辑
注册逻辑
@WebServlet("/registered")
public class registered extends HttpServlet {
public registered(){
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8");
String password1 = request.getParameter("password1");
String password2 = request.getParameter("password2");
if(password1 == null || password2 == null){
System.out.println("请输入密码");
}
if(password1.equals(password2)){
Connection conn = null;
ResultSet rs = null;
PreparedStatement ptst = null;
try{
conn = connectionUtil.getConnection();
String sql = "SELECT username FROM user";
ptst = conn.prepareStatement(sql);
rs = ptst.executeQuery();
while (rs.next()) {
if(username.equals(rs.getString("username"))){
System.out.println("用户名已存在");
return;
}
}
String ins = "insert into user(username,password) values (?,?)";
ptst = conn.prepareStatement(ins);
ptst.setString(1,username);
ptst.setString(2,password1);
int i = ptst.executeUpdate();
if(i==1) {
System.out.println("注册成功");
}else {
System.out.println("注册失败");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
connectionUtil.release(conn,ptst,rs);
}
}else {
System.out.println("两次密码不一致");
}
}
// 处理 POST 方法请求的方法
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
登录逻辑
@WebServlet("/login")
public class login extends HttpServlet {
public login(){
super();
}
@Override
// 处理 POST 方法请求的方法
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
Connection conn = null;
PreparedStatement ptst = null;
ResultSet rs = null;
String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8");
String password = request.getParameter("password");
if(username == null || password == null){
System.out.println("请输入账号或者密码");
}
try {
conn = connectionUtil.getConnection();
String sql = "SELECT * FROM user where username = ?";
ptst = conn.prepareStatement(sql);
ptst.setString(1,username);
rs = ptst.executeQuery();
while (rs.next()){
if(password.equals(rs.getString("password"))){
System.out.println("登陆成功");
}else {
System.out.println("账号密码不正确");
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
connectionUtil.release(conn,ptst,rs);
}
}
}
如果一直连接不上数据库时,需要在java的运行环境外部也需要导入JDBC的包,路径是安装的java文件夹下的jrelibext