servlet学习

21 篇文章 0 订阅
5 篇文章 0 订阅

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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值