一、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. Blazor前后端框架Known-V1.2.5

    V1.2.5 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Gith ...

  2. 一:wince 开发环境

    1:下载相关文件,vs2008 可以自行搜索安装 链接:https://pan.baidu.com/s/1b2shwCqmc1o9x-zsy8CmeA 提取码:qing

  3. Element-ui源码解析(二):最简单的组件Button

    好家伙,为了有足够的能力去开发组件,先研究一下别人的组件 开始抄袭模仿我们的行业标杆element-ui   找到Button组件的源码  只有三个文件,看上去非常易读,开搞  其中最重要的部分,自然 ...

  4. 【go语言】2.3.1 错误处理的基本概念

    在 Go 语言中,错误处理是通过返回错误值进行的,而不是像一些其他语言那样通过抛出和捕获异常.Go 语言有一个内置的接口类型 error,专门用于处理错误. error 接口 error 是一个内置的 ...

  5. html元数据

    元数据就是用来描述数据的数据.HTML中也有很多元数据. <meta>标签提供关于HTML文档的元数据:描述(description)\关键词(keywords).文档的作者(author ...

  6. AttributeError: 'EmailUse' object has no attribute 'SendMail'

    错误原因:函数名与模块名重复 解决方案:不要将函数名与模块名重复

  7. 1.创建一个类,类A中定义了一个方法,该方法能接受3个参数根据参数判断是做加法还是减法并返回计算结果;

    class A: def cal(self,x,y,z): if z=='+': return x+y if z=='-': return x-y else: print('error') a=A() ...

  8. 论文解读(MCADA)《Multicomponent Adversarial Domain Adaptation: A General Framework》

    Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Multicomponent Adversarial Domain Adaptation: A Gener ...

  9. 《深入理解Java虚拟机》读书笔记:Class类文件的结构

    Class类文件的结构 Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的的程序存储格式--字节码(ByteCode),从而实现了程序 ...

  10. 介绍 SafeCoder 解决方案服务

    今天这篇推文,我们打算给自己打一波"广告",向大家隆重介绍 SafeCoder-- 一款专为企业打造的代码助手解决方案. SafeCoder 旨在成为你完全合规且自托管的结对编程工 ...