Web---JSP注册技术的演绎(3代)-JSP/EJB/Servlet/POJO/JavaBean

简介: Web---JSP注册技术的演绎(3代)-JSP/EJB/Servlet/POJO/JavaBean

我们可以这么理解JSP注册技术的发展过程:

第一代JSP技术:纯JSP开发。

第二代JSP技术:JSP+EJB开发。

(EJB简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。)

第三代JSP技术:JSP+Servlet+POJO开发。(**MVC框架)

(POJO其实就是简单的JAVA类,也是简单的JavaBean(特殊的值对象封装))


其实EJB—可理解成企业级的JavaBean(相对于简单的JavaBean增加了一些业务处理方法)


现在还有更新的技术,目前还没学到,学到后会第一时间写博客的。


演示纯JSP开发技术:


regPurJsp.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  <h2>纯JSP开发的注册</h2>
    <form action="doReg.jsp" method="post">
        Name:<input type="text" name="name" /><br/>
        Password:<input type="password" name="pwd"/><br/>
        <input type="submit" value="注册"/>
    </form>
  </body>
</html>


doReg.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
    <%
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        if(name!=null && name.trim().length()>0 && name.startsWith("hncu") ){
            //访问后台
            session.setAttribute("user", name);
            out.println("success..."+name);
            //其实还可以跳转到其他登录成功的jsp页面的,这里就省略了;
            //request.getRequestDispatcher("success.jsp").forward(request, response);
        }else{
            out.println("failuer..."+name);
            //可以跳转到其他登录失败的jsp页面的,这里就省略了;
            //request.getRequestDispatcher("failure.jsp").forward(request, response);
        }
    %>
  </body>
</html>


演示结果就不演示了,相信大家一眼就能看出运行结果,不过是2个jsp页面跳转而已(后台数据库没写),中间有一些java代码罢了。

JSP+EJB开发

regEjbJsp.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
    <form action="doRegEjb.jsp" method="post">
        Name:<input type="text" name="name"/><br/>
        Age:<input type="text" name="age"/> <br/>
        <input type="submit" value="注册"/>
    </form>
  </body>
</html>


User.java:

package cn.hncu.jspEjb.ejb;
import java.util.ArrayList;
import java.util.List;
public class User {
    private String name;
    private Integer age;
    public User() {
        super();
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    //在POJO(JavaBean)的基础上增加一些业务处理方法,就变成企业级JavaBean---EJB
    public boolean reg(){
        //可以再去调用DAO层。我这里简化了
        //UserDAO dao = UserDaoFactory.getUserDAO();
        //dao.reg(this.name,this.age);
        if(name.startsWith("hncu") && age>20){
            return true;
        }else{
            return false;
        }
    }
    /**
     * @return 功能,返回所有的User
     */
    public List<User> getAll(){
        return null;
    }
}


doRegEjb.jsp:

<%@page import="cn.hncu.jspEjb.ejb.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
    <%
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String strAge = request.getParameter("age");
        //下面这一句强转需要再防范一下!!
        int age = Integer.parseInt(strAge);
        User user = new User();
        user.setName(name);
        user.setAge(age);
        boolean boo = user.reg();
        if(boo){
            //访问后台。。。
            session.setAttribute("user",name);
            out.print("success..."+name);
            //也可以再写一个登录成功页面
            //request.getRequestDispatcher("success.jsp").forward(request, response);
        }else{
            out.print("failure..."+name);
            //也可以再写一个登录失败页面
            //request.getRequestDispatcher("failure.jsp").forward(request, response);
        }
    %>
  </body>
</html>


JSP(V)+Servlet(C)+POJO(M)开发的注册—MVC

这里把业务逻辑层从JavaBean分离开了!

user.java:

package cn.hncu.regServletPojo.domain;
public class User {
    private String name;
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}


RegServlet.java:

package cn.hncu.regServletPojo.servlets;
import java.util.List;
import cn.hncu.regServletPojo.domain.User;
public class RegServlet {
    public boolean reg(User user){
        //再分一个DAO
        //UserDAO dao = UserDaoFactory.getUserDAO();
        //dao.reg(user);
        //要去数据库校验数据!!!!
        if(user.getName().startsWith("hncu") && user.getAge()>20 ){
            return true;
        }else{
            return false;
        }
    }
    //查询所有的User
    public List<User> getAll(){
        return null;
    }
}


regServletJsp.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
    <h2>JSP(V)+Servlet(C)+POJO(M)开发的注册---MVC</h2>
    <form action="/myJspDemo2/RegServletPOJO" method="post">
        Name:<input type="text" name="name"/><br/>
        age:<input type="text" name="age"/><br/>
        <input type="submit" value="注册"/>
    </form>
  </body>
</html>

web.xml:

<servlet>
    <servlet-name>RegServletPOJO</servlet-name>
    <servlet-class>cn.hncu.reg.servlet.RegServletPOJO</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>RegServletPOJO</servlet-name>
    <url-pattern>/RegServletPOJO</url-pattern>
  </servlet-mapping>    


RegServletPOJO.java:

package cn.hncu.reg.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 cn.hncu.regServletPojo.domain.User;
import cn.hncu.regServletPojo.servlets.RegServlet;
public class RegServletPOJO extends HttpServlet {
    //注入servlet
    RegServlet service = new RegServlet();
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        String strAge = request.getParameter("age");
        //下面的解析需要防范
        int age = Integer.parseInt(strAge);
        User user = new User();
        user.setName(name);
        user.setAge(age);
        boolean boo = service.reg(user);
        if(boo){
            //访问后台。。
            request.getSession().setAttribute("user", name);
            out.print("success..."+name);
            //可以转发到另外的成功页面
            //request.getRequestDispatcher("sussess.jsp").forward(request, response);
        }else{
            out.print("failure..."+name);
            //可以转发到另外的失败页面
            //request.getRequestDispatcher("failure.jsp").forward(request, response);
        }
    }
}

JavaBean简介:

JavaBean是一种可重用的软件组件。

一个JavaBean具有以下标准:

1、必须是一个公共的类。

2、必须有一个公开的无参的构造。

3、必须有getXxx和setXxx方法。

目录
相关文章
|
5月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
567 1
|
8月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
261 1
|
9月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
354 7
|
人工智能 安全 物联网
区块链技术的未来展望:去中心化金融(DeFi)与Web 3.0的融合
区块链技术的未来展望:去中心化金融(DeFi)与Web 3.0的融合
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
343 6
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
338 3
|
缓存 安全 前端开发
构建高效Web应用的五大关键技术
【10月更文挑战第42天】在数字化浪潮中,Web应用已成为企业与用户互动的重要桥梁。本文将深入探讨提升Web应用性能和用户体验的五项核心技术,包括前端优化、后端架构设计、数据库管理、安全性增强以及API开发的最佳实践。通过这些技术的应用,开发者可以构建出更快、更稳定且更安全的Web应用,满足现代网络环境的需求。
|
4月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
407 4
|
8月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
8月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。