架构实例之Demo_JSP_JavaBean_Servlet

架构实例之Demo_JSP_JavaBean_Servlet

1、开发工具和开发环境

      开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13

开发环境:WIN10

2、Demo_JSP_JavaBean_Servlet实现功能

用户登录、用户注册、退出登录。

3、Demo_JSP_Java_Bean_Servlet使用技术

      本实例使用了JSP、JavaBean、Servlet和JDBC来实现用户登录、用户注册和退出登录功能。系统架构图如图一所示:

 

图一:Demo_JSP_Java_Bean_Servlet系统架构图

     下面请看图二(系统中JSP、JavaBean和Servlet之间的逻辑关系图):

 

 

 

图二:系统中JSP、JavaBean和Servlet之间的逻辑关系图

 

4、具体实现

       本篇博客实例代码是基于本人上一篇博客代码修改而来,其中修改的部分是增加了一个Servlet,并删除了JSP文件中处理逻辑层的文件,接下来主要讲解一下修改的部分——Servlet:

首先在项目Demo_JSP_Java_Bean_Servlet中新建一个Servlet类:类名命名为UserServlet,包名命名为liu_servlet,该Servlet类主要实现用户登录、注册和退出的逻辑处理,并且调用JavaBean来操作数据库。UserServlet类的具体代码如下:

package liu_servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import liu.UserBean;

public class UserServlet extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     * Constructor of the object.
     */
    public UserServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String method = (String)request.getParameter("method");
        if(method==null) {
            PrintWriter out = response.getWriter();
            out.println("invalid request!");
        } else if(method.equals("login")) {
            Login(request, response);
        } else if(method.equals("logout")) {
            Logout(request, response);
        } else if(method.equals("register")) {
            Register(request, response);
        }
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
         doGet(request,response);
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */

    protected void Login(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // get parameters
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // check null
        if (username == null || password == null) {
            response.sendRedirect("login.jsp");
            return;
        }

        // validate
        UserBean userBean = new UserBean();
        boolean isValid = userBean.valid(username, password);

        if (isValid) {
            HttpSession session = request.getSession();
            session.setAttribute("username", username);
            response.sendRedirect("welcome.jsp");
            return;
        } else {
            response.sendRedirect("login.jsp");
            return;
        }
    }

    protected void Logout(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        session.removeAttribute("username");
        response.sendRedirect("login.jsp");
    }

    protected void Register(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // get parameters
        String username = request.getParameter("username");
        String password1 = request.getParameter("password1");
        String password2 = request.getParameter("password2");
        String email = request.getParameter("email");

        // check null
        if (username == null || password1 == null || password2 == null || !password1.equals(password2)) {
            response.sendRedirect("register.jsp");
            return;
        }

        // validate
        UserBean userBean = new UserBean();
        boolean isExist = userBean.isExist(username);
        if(!isExist) {
            userBean.add(username, password1, email);
            response.sendRedirect("login.jsp");
            return;
        } else {
            response.sendRedirect("register.jsp");
            return;
        }
    }

    public void init() throws ServletException {
        // Put your code here
    }

}

接下来,查看Demo_JSP_Java_Bean_Servlet项目下web.xml文件,其中我的web.xml文件代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>UserServlet</servlet-name>
    <servlet-class>liu_servlet.UserServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/UserServlet</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

注意:<url-pattern>/UserServlet</url-pattern>这一句我是打开后修改的,未修改之前的代码应该是:<url-pattern>/servlet/UserServlet</url-pattern>。如果不把/servlet去掉,到时进行逻辑处理跳转界面时,就会出现在URL中多出了.../servlet/welcome.jsp,从而报Tomcat中没有welcome.jsp编译文件的错误。

其他部分代码以及结果展示请查看本人上一篇博客哦:http://www.cnblogs.com/liuzhen1995/p/5700789.html

附:Demo_JSP_Java_Bean_Servlet项目源码文件百度云下载链接:http://pan.baidu.com/s/1geEOyht 密码:zhu4

 

时间: 2024-10-10 13:28:13

架构实例之Demo_JSP_JavaBean_Servlet的相关文章

【DDD】领域驱动设计实践 —— 架构风格及架构实例

概述 DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定. 核心的指导思路归纳为: 关注点放在domain上,将业务领域限定在同一上下文中 降低上下文之间的依赖,通过‘开发主机服务’(REST服务是其中的一种).‘消息模式’.‘事件驱动’等架构风格实现 遵循分层架构模式 架构风格 针对DDD的架构设计,<实现领域驱动设计>提到了几种架构风

三层架构实例

三层架构实例 一.新建立一个三层架构体系结构解决方案 原文://http://blog.csdn.net/xjc1278003262/article/details/8867177 新建一个空白解决方案.然后: 1.“添加”-“新建项目”-“Visual C#”-“类库”-“称:LoginBLL”-“业务逻辑”(业务层,下简称B层)如下图: 2.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginDAL”-“数据访问”(数据层,下简称D层)如下图: 3.“添加”-“新建项

架构实例之Demo_JSP_JavaBean

架构实例之Demo_JSP_JavaBean 1.开发工具和开发环境      开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:WIN10 2.Demo_JSP_JavaBean实现功能      用户登录.用户注册.退出登录. 3.Demo_JSP_Java_Bean使用技术      本实例使用了JSP.JavaBean和JDBC来实现用户登录.用户注册和退出登录功能.系统架构图如图一所示: 图一:Demo

架构实例之Demo_JSP

架构实例之Demo_JSP 1.开发工具和开发环境       开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:WIN10 2.Demo_JSP实现功能      用户登录.用户注册.退出登录. 3.Demo_JSP使用技术     本实例使用了JSP.JDBC来实现用户登录.用户注册和退出登录功能.系统架构图如图一所示: 图一:Demo_JSP系统架构图 下面请看图二(Demo_JSP中JSP文件间逻辑关系图

架构实例之SpringTest

架构实例之SpringTest 1.开发工具和开发环境       开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:WIN7 2.SpringTest实现功能 用户登录.用户注册.退出登录. 3.SpringTest使用技术       本实例使用了JSP.Spring3.1框架.JdbcTemplate来实现用户登录.用户注册和退出登录功能.系统架构图如图一所示:   图一:SpringTest系统架构图 4

C# 最简单的三层架构实例 ——转载自网易博客

代码        /// <summary>        /// 初始化登录名称.登录密码(Model类)        /// </summary>        private string adminUser = string.Empty; //设置用户名称为空值        private string adminPwd = string.Empty; //设置用户密码为空值        public string AdminUser        {       

vb.Net三层架构实例——登录

封装给编程带来的巨大的好处我们已感受到了,面向对象编程思想已经深入人心. 有了面向对象思想做指导,软件得到了迅速 的发展.在这种发展趋势下,三层架构也随之出现了. 从物理结构上来说,三层可以是客户端.应用服务器.数据库服务器.从逻辑上来说是表现层(Presentation layer).业务逻 辑层(Business Logic Layer).数据访问层(Dataaccess layer).区分层次体现了"高内聚低耦合"的思想.在软件体系架构设 中,分层式结构是最常见,也是最重要的一种

C#三层架构实例

对于三层的概念查也查了,看也看了,下面是我找的一个关于三层的简单实例,真正看一下它是如何具体实现的. 我们先来一起看看实体类-Model 实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段! using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace model { public class User { public User()

JAVA学习笔记(五十三)- 经典三层架构实例

UserDAO接口 /* * UserDAO接口 */ public interface UserDAO { //插入用户 public void insert(User user); //删除用户 public void delete(int id); //更新用户 public void update(User user); //查询所有用户 public List<User> getAllUsers(); //根据用户名或密码查询用户 public boolean checkUser(U