一、JSP、JavaBean、Servlet的区别
1、JSP:JSP通过在标准的HTML页面中嵌入Java代码,其静态的部分无效Java程序控制,只有那些需要从数据库读取或需要动态生成的页面内容,才使用Java脚本控制;JSP必须在JSP服务器内运行,JSP文件必须生成Servlet才能执行。例如一个静态的页面first.jsp,访问该页面,会在$tomcat_home\work\Catalina\localhost\webDemo\org\apache\jsp生成first_jsp.java、first_jsp.class
 
例子:
// first.jsp,如果为first.html,不会生成对应的Servlet
1 <html>
2 <body>
3 It is first JSP page!
4 </body>
5 </html>
 
2、JavaBean:如果多个jsp页面需要重复使用某段代码,我们可以把这段代码定义成Java类的方法,让后让多个jsp页面调用该方法即可,这样可以达到较好的代码复用。这就是JavaBean
 
3、Servlet:JSP的本质就是Servlet,开发者把编写好的JSP页面部署在Web容器中后,Web容器会将JSP编译成对应的Servlet;但直接使用Servlet的坏处是:(1)Servlet的开发效率非常低,特别是当使用Servlet生成表现层页面时,页面中所有的HTML标签,都需要采用Servlet输出流来输出,因此及其繁琐
       (2)而且Servlet是标准的Java类,必须由程序员开发修改,美工人员难以参与Servlet页面的开发
这一系列问题,阻碍了Servlet作为表现层的使用
 
自从MVC规范出现后,Servlet的责任开始明确下来,仅仅作为控制器使用,不再需要生成标签页签,也不再作为视图层使用
 
Servlet通常称为服务端的小程序,是运行在服务端的小程序,用于处理及响应客户端的请求;是个特殊的Java类,必须继承HttpServlet,提供不同的方法用于响应客户端的请求:
(1)doGet (2)doPost (3)doPut (4)doDelete;大部分时候Servlet对于所有的请求都是一样的,这时只需要重写service()方法即可响应客户端的所有请求
 
二、MVC(JSP+JavaBean+Servlet) 实例功能
   客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginServlet.java)(Servlet作为前端控制前,负责接收客户端发送的请求,Servlet只包含控制逻辑和简单的前端处理)调用JavaBean(Model.java)验证用户名和密码(JavaBean完成实际的逻辑处理),最后调用视图returnMessage.jsp显示(相应的JSP页面 处理显示逻辑),如果成功显示成功信息,不成功显示失败信息。
三、MVC(JSP+JavaBean+Servlet) 实例开发步骤
 

1、login.html

//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\mvc\login.html

 1 <html>
2 <form action="/webDemo/login.do" method="post">
3 <div>
4 Name<input type="text" name="name"/><br/>
5 Password<input type="text" name="pas"/><br/>
6 <input type="submit" value="Login"/>
7 <input type="hidden" value="login" name="typeId"/>
8 </div>
9 </form>
10 </html>
注意:第2行,必须用全路径 /webDemo/login.do

2、LoginServlet.java

//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\WEB-INF\src\mvctest\LoginServlet.java

 1 // 建立MVC中的C(control),完成JSP+Servlet+JavaBean的开发模式
2
3 package mvctest;
4
5 import java.io.* ;
6 import java.util.* ;
7 import javax.servlet.* ;
8 import javax.servlet.http.* ;
9 //import org.lxh.factory.* ;
10 //import org.lxh.vo.* ;
11
12
13 public class LoginServlet extends HttpServlet {
14 public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
15 this.doPost(request,response) ;
16 }
17 public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
18 response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
19 java.io.PrintWriter out = response.getWriter();
20
21 String type=request.getParameter("typeId");
22 if (type.trim().equals("login")) {
23 String name=request.getParameter("name");//获取视图里的name
24 String pas=request.getParameter("pas");//获取视图里的password
25
26 Model newModel=new Model();//调用 模型
27 newModel.setName(name);
28 newModel.setPas(pas);
29 String message = newModel.login();
30
31 String url="/webDemo/mvc/returnMessage.jsp?message="+message; //如下是把结果返回给视图
32 url=new String(url.getBytes("GBK"),"ISO8859_1");
33 response.sendRedirect(url);
34 }
35 }
36 };

3、Model.java

//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\WEB-INF\src\mvctest\LoginServlet.java

 1 /**
2 * 2013-11-16
3 * Model.java
4 * author:**
5 */
6 package mvctest;
7
8 public class Model {
9
10 private String name=null;
11 private String pas=null;
12
13 public void setName(String name) {
14 this.name=name;
15 }
16
17 public String getName() {
18 return name;
19 }
20
21 public void setPas(String pas) {
22 this.pas=pas;
23 }
24
25 public String getPas() {
26 return pas;
27 }
28
29 public String login() {
30 if ((name.trim().equals("admin"))&&(pas.trim().equals("1234"))) {
31 return "login successful";
32 }
33 else {
34 return "login failed";
35 }
36 }
37 }

4、编译Model.java、LoginServlet.java

注意1:编译报软件包javax.servlet不存在http://liuxlyard.iteye.com/blog/582381

原因是:java编译器没有找到软件包javax.servlet,由于servlet和JSP不是Java平台Java SE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置。

注意2:Model.java和LoginServlet.java都在包mvctest中,且LoginServlet.java依赖Model,因此需要先编译Model.java,然后再编译LoginServlet.java

D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\web
apps\webDemo\WEB-INF\src\mvctest>javac Model.java

D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\web
apps\webDemo\WEB-INF\src>javac mvctest\LoginServlet.java  //此处必须要这样才行

5、拷贝全路径class文件到D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\WEB-INF\classes

6、returnMessage.jsp

//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\mvc\returnMessage.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" import="java.sql.*"%>
2 <html>
3 <head>
4 <title>MVC(JSP+JavaBean+Servlet)入门实例--中国网页设计</title>
5 </head>
6
7 <body>
8 <%
9 String message=new String ( request.getParameter("message").getBytes("ISO8859-1"),"GBK" ); %>
10 <%=message %>
11 </body>
12 </html>

7、配置Servlet

(1)编辑好的Servlet源文件不能响应用户请求,还必须将其编译成class文件,并将编译后的文件及包放到WEB-INF/classes路径下

(2)为了能让Servlet响应用户请求,还必须将Servlet配置在Web应用中,即修改web.xml

 1     <!-- 配置Servlet的名字 -->
2 <servlet>
3 <servlet-name>Login</servlet-name>
4 <servlet-class>mvctest.LoginServlet</servlet-class>
5 </servlet>
6 <!-- 配置Servlet的URL -->
7 <servlet-mapping>
8 <servlet-name>Login</servlet-name>
9 <url-pattern>/login.do</url-pattern>
10 </servlet-mapping>

注意第4行,需要加包名

四、验证

主要参考:http://blog.csdn.net/lyyybz/article/details/8782138#t1//数据库的操作还未实践

       http://blog.csdn.net/gxiangzi/article/details/5504519

       http://zhaoyuqiang.blog.51cto.com/6328846/1154733    //数据库的操作

MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证的更多相关文章

  1. JSP+JavaBean+Servlet工作原理实例…

    JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...

  2. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...

  3. Struts与jsp+javabean+servlet区别

    采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...

  4. <jsp:javabean>动作标签实例

    <jsp:javabean>动作标签实例 之后补齐基础知识 scope属性 该属性指定了所创建Bean实例的存取范围,省略该属性时的值为page.<jsp:useBean>标识 ...

  5. JavaWeb基础之Servlet简单实现用户登陆

    学习javaweb遇到了一些坑,一些问题总结下来,记个笔记. 学习servlet遇到的一些坑: servlet实现用户登陆遇到的坑解决办法: https://www.cnblogs.com/swxj/ ...

  6. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  7. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  9. javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  10. JSP + JavaBean + Servlet实现MVC设计模式

    1.流程图: 2.代码清单 数据库脚本: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userid` ) NOT NULL, `name` ...

随机推荐

  1. 2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和 能被 p 整除。 不允许 将整个数组都移除。 请你返回你需要移除的最短子数组的长度,如果

    2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和 能被 p 整除. 不允许 将整个数组都移除. 请你返回你需要移除的最短子数组的长度,如果 ...

  2. 什么是PMP?

    PMP(Project Management Professional)中文名称叫项目管理专业人士资格认证.它是由美国项目管理协会(PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证 ...

  3. [pytest]基础

    简介 The pytest framework makes it easy to write small, readable tests, and can scale to support compl ...

  4. 树莓派烧录系统并在无外接屏幕的情况下连接VNC

    ​ 上个月老板给了块树莓派3B,开心坏了,在咸鱼上掏了很多零件,花了一段时间做出了一个二驱动的智能小车,但是觉得小车太小,就在又在咸鱼上掏了个四区的地盘,但是在拆卸的过程中,发现树莓派WIFI没有了, ...

  5. composer 的使用和常用命令大全

    composer 常用命令 1.composer初始化 init 如何手动创建 composer.json 文件.实际上还有一个 init 命令可以更容易的做到这一点. 查看当前版本composer ...

  6. Python生成30万条Excel 测试数据

    使用Python生成30万条Excel 测试数据 from openpyxl import Workbook from concurrent.futures import ThreadPoolExec ...

  7. vsftp简单配置

    添加用户 vi /etc/pam.d/vsftdp 注释掉 auth required pam_shells.so

  8. Nomad 系列-快速上手

    系列文章 Nomad 系列文章 Nomad 重要术语 Nomad 安装设置相关术语 agent - 代理.Agent 是在 Server(服务器) 或 Client(客户端) 模式下运行的 Nomad ...

  9. SQL Server实例间同步登录用户

    SQL Server实例间同步登录用户 问题痛点:由于AlwaysOn和数据库镜像无法同步数据库外实例对象,例如 登录用户.作业.链接服务器等,导致主库切换之后,应用连接不上数据库或者作业不存在导致每 ...

  10. 在同一个k8s集群中部署多套nginx-controller

    1.nginx-controller部署请参考我的另一篇博客 nginx Ingress Controller Packaged by Bitnami 2.修改values.yaml 不通contro ...