JSP培训(6)——使用Servlet作为控制器实现MVC模式

共创在线考试系统JSP源码完整项目实战(JSP+Servlet架构) 随着教育信息化的快速发展,在线考试系统逐渐成为高校与企业培训中不可或缺的工具。它不仅提升了考试效率,还增强了评卷的公正性与数据管理的规范性。本系统基于Web技术构建,涵盖用户注册、登录、考试答题、成绩统计等核心功能模块,支持多角色权限控制,满足学生、教师、管理员等不同用户的使用需求。系统采用前后端分离设计,以前端页面交互为基础,后端服务处理业务逻辑,整体架构具备良好的可扩展性与可维护性。下一章将深入解析JSP与Servlet技术原理,并结合代码示例展示其在系统中的实际应用。 阅读详情
 
目标:
l         初步理解MVC模式;
l         掌握Servlet的编写;
l         使用MVC模式完成登录功能。
主要内容:
l         分析JSP+JavaBean模式存在的问题,并介绍JSP+JavaBean+Servlet模式,以及和MVC模式的关系;
l         通过简单实例介绍Servlet的编写、配置和运行;
l         采用Servlet完成登录功能的控制。
1、 JSP+JavaBean这种模式存在的问题?
JSP的强大之处在与人交互,也就是完成输入输出的功能。但是在JSP+JavaBean这种模式中,JSP不仅仅完成输入输出的功能,还完成系统的控制功能(接收用户请求,调用JavaBean,然后根据调用的结果,选择界面对用户进行响应)。所以在JSP发展的第三个阶段中,把控制功能从JSP中分离出来,使用Servlet来实现,形成JSP+JavaBean+Servlet这种模式,JSP仅仅完成输入和输出,JavaBean完成处理,而Servlet完成控制。
2、 JSP+JavaBean+Servlet
JSP负责输入输出,JavaBean负责实现业务逻辑(功能),Servlet完成控制。这种模式通常也被认为是MVC模式的一种实现。MVC模式把系统的业务逻辑、控制和输入输出进行分离,在开发应用的时候,可以单独考虑某一部分,简化开发。
V,表示视图,与人交户的部分,M,表示模型,完成功能,C,表示控制器。JSP通常充当视图,JavaBean是模型,Servlet作为控制器。
3、 什么是Servlet
Servlet也是一种Web组件,从完成的功能上来说,与JSP是相同的。Servlet是纯Java文件,是特殊的Java类。
Servlet与JavaBean有什么区别呢?都是Java类,但是Serlvet可以接收用户的请求,客户端可以直接访问。但是JavaBean不能被客户端直接访问,必须由JSP或者其他的Java文件(包括Servlet)来调用。
4、 实例:HelloServlet
下面是一个Servlet,完成的功能是输出一句话“Servlet测试!”。
1)文件编写
package servlet;
// Servlet开发所需要的包
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class HelloServlet extends HttpServlet
{
   public void doGet(HttpServletRequest request,HttpServletResponse response)
throw IOException,ServletException
   {
      response.setContentType(“text/html;charset=gb2312”);
      PrintWriter out = response.getWriter();
      out.print(“Servlet测试!”);
   }
}
2)编译
需要把C:/Program Files/Apache Software Foundation/Tomcat 6.0/lib/servlet-api.jar配置到classpath中,然后编译。
3)配置
在配置文件web.xml中写。包括两部分:声明和访问方式设置。
声明:
<servlet>
   <servlet-name>hello</servlet-name>
   <servlet-class>servlet.HelloServlet</servlet-class>
</serlvet>
访问方式设置:
<servlet-mapping>
   <servlet-name>hello</servlet-name>
   <url-pattern>/hello</url-pattern>
</servlet-mapping>
5、 测试
访问:http://127.0.0.1:8080/ch6/hello
6、 如何采用这种模式实现登录功能?
界面界面和响应界面都不需要修改,JavaBean完成处理,也不需要改变,只是使用Servlet来替换原来的login-process.jsp,完成控制功能。
1)参考代码如下:
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javabean.*;
 
public class LoginProcess extends HttpServlet
{
   public void doGet(HttpServletRequest request,HttpServletResponse response)
     throws IOException,ServletException
   {
      // 第一步:获取用户的输入信息
      String username = request.getParameter(“username”);
      String userpass = request.getParameter(“userpass”);
 
      // 第二步:调用JavaBean
      User user = new User();
      user.setUsername(username);
      user.setUserpass(userpass);
      boolean b = user.check();
 
      // 第三步:选择一个界面对用户进行响应
      String forward;
      if(b)
         forward = “success.jsp”;
      else
         forward = “failure.jsp”;
      RequestDispatcher rd = request.getRequestDispatcher(forward);
      rd.forward(request,response);
   }
}
上面的代码基本上展示了Servlet作为控制器的基本功能。
2)配置
   <servlet>
      <servlet-name>process</servlet-name>
      <servlet-class>servlet.LoginProcess</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>process</servlet-name>
      <url-pattern>/process</url-pattern>
   </servlet-mapping>
3)修改登录界面的action属性
<%@ page contentType="text/html;charset=gb2312"%>
请登录<br>
<form name="form1" method="post" action="process">
   用户ID:<input type="text" name="username"><br>
   口令:<input type="password" name="userpass"><br>
       <input type="submit" value="登录"><input type="reset" value="重置">
</form>
<%@ include file="contact.jsp"%>
7、 测试运行
访问登录界面,输入信息,然后提交。
这时候会报错,提示请求方式不支持。需要在Servlet中增加如下方法:
   public void doPost(HttpServletRequest request,HttpServletResponse response)
     throws IOException,ServletException
   {
      doGet(request,response);
   }
因为JSP页面中的请求方式为post,所以Servlet中需要提供doPost方法,方法的定义和doGet相同,这里方法的实现只需要调用doGet方法即可。
8、 Servlet的主要方法
init方法,用于初始化;
服务类方法:doGet方法和doPost方法
destroy方法,释放资源
9、 生命周期
服务器接收到请求之后,会把请求信息封装成HttpServletRequest对象和HttpServletResponse对象。
第一次访问servlet的时候,加载类,创建对象,初始化(init方法),调用服务类方法(如果是get请求,调用doGet方法,如果是post请求,调用doPost方法)。
后续访问,直接调用服务器类方法。
卸载Servlet的时候,或者关闭服务器的时候,调用destroy方法释放资源。
 
基于Servlet和jsp采用mvc模式开发的个人信息管理系统 采用javaweb开发基础技术servlet ,jsp,mvc的设计模式开发的个人信息管理系统。 立即下载

相关推荐

200_matlab处理NCEP数据并画全球彩色的风场图

200_matlab处理NCEP数据并画全球彩色的风场图。

miaobo0的博客 1240

JSP:用MVC设计模式实现计算一个Web应用计算三角形面积和梯形面积

实验设计一个Web应用。用户可以通过JSP页面输入三角形的三边或梯形的上底、下底和高给一个servlet控制器,控制器负责计算三角形和梯形的面积,并将结果存储到数据模型中,然后请求JSP页面显示数据模型中的数据。(注意用MVC设计模式实现)

qq_51913390的博客 7754

2d游戏地图编辑器_[U3D]基于MarchingCubes实现的War3Editor 地表/悬崖编辑器

花了几天时间研究清楚Marching cubes后,发现这个方法是一个非常适用于地图编辑,网格编辑,procedural 生成的工具。最大的优点有着较好的边缘,表面处理。然后我用U3D写了一个悬崖/地表的编辑器。其中使用到了Marching Cubes的2.5D,2D两种降维的方法。talk is cheap,让我看效果!DemoEditor展示https://www.zhihu.com/vide...

weixin_42504649的博客 1178

简述在JSP中,MVC模式中的数据模型、控制器和视图三种角色分别由那种技术担当,具体如何实现

数据模型(Model):一个或多个 Javabean 对象,用于存储数据。Javabean 主要提供简单 的 setXxx 方法和 getXxx 方法,在这些方法中不涉及对数据的具体处理细节,以便增强模型 的通用性。 视图(View):一个或多个 JSP 页面,其作用是向控制器提交必要的数据和显示数据。 JSP 页面可以使用 HTML 标记、Javabean 标记以及 Java 程序片或 Java 表达式来显示数据。 控制器(Controller):一个或多个 servlet 对象,根据视图提交的要求进行数

weixin_64180522的博客 1149

一文搞懂雷达脉冲压缩和匹配滤波器

为了解决传统单频脉冲雷达面临的作用距离和空间分辨力之间的矛盾,脉冲压缩理论被提出。在接收端设计一个和发射信号能够“共轭匹配”的网络来实现脉冲压缩。接收到的回波信号通过匹配滤波器时,滤波器的增益在信号越强的频率点越大;在信号越弱的频率点,增益越小,通过这样的方式使信号在时域更加集中。脉冲压缩技术大致可分为线性调频(LFM)和相位编码。其中LFM信号易于通过硬件或各种技术产生,但是进行匹配滤波后主旁瓣比高达13.2dB,在检测多个目标时,强目标的回波旁瓣可能会把弱小信号覆盖,导致弱小信号的检测受到影响。

FPGA入门到跑路 9938

5G物理层基础知识

1、关于RB和RE (1) RB(Resource Block,资源块)频率上连续12个子载波,时域上一个slot(时隙,14个ofdm符号) (2) RE(Resource Element,资源单元)频率上一个子载波,及时域上一个ofdm符号 注意:协议规定,5G每个时隙(非扩展CP)的符号数为14个(扩展CP情况下每个时隙有12个符号),而LTE(非扩展CP)每个时隙的符号数为7个。 简单说:一个12X14的方格,大的整个叫一个RB,每一个小块叫一个RE。另外,一个RE可存放一个调制符号(mo.

qq_39074243的博客 2万+

JSP实验:三角形的边长,面积,周长

我这里有一个问题,如果不能构成三角形,就应该不出现面积和周长,但是我写不出来。 编写两个JSP页面:inputTriangle.jsp与showTriangle.jsp。inputTriangle.jsp提供一个表单,用户可以通过表单输入三角形的三条边提交给showTriangle.jsp。用户提交表单后,JSP页面将计算三角形面积和周长的任务交给一个bean去完成,创建bean的源文件是Triangle.java。页面运行效果如图所示。 (1) Triangle.java package com.

Claire的博客 7270

教你如何阅读Autosar代码(6):常量变量定义

编译器抽象应该为常量的声明和定义定义CONST宏。编译器抽象应该定义VAR宏来声明和定义变量。memclass:常量本身的分类;memclass:变量本身的分类;vartype:变量的类型;type:常量的类型;

wdconan001的博客 958

jsp学习(六.MVC模式)

目录MVC模式例子遇到的一小小问题 MVC模式 MVC模式就是一整构架:模型+视图+控制器 模型就是java bean,视图是jsp页面,控制器是servlet 也就是说我们的servlet作为数据的处理程序,java bean只拿来当作一个对象存储数据,jsp负责显示 其实我们学过都知道,servlet也可以控制jsp页面(resp.getWriter()),但太混杂了,MVC模式便于管理和维护 例子 制作一个计算器,和书上的稍微有改动,我让输入框里的数不会消失了,具体方法见下面代码 index.j

m0_49936845的博客 1598

通过采用下面方法检查内容,还是系统无法更新下载,但是错误代码变成了——下载错误 - 0x80004002-到底如何解决?必须重装系统吗?-这个到底是系统问题,还是硬件问题?

‌。

qq_15963745的博客 337

linux系统中实现智能家居的基本方法

使用QT开发智能家居中的一个物联应用,通过云服务器远程控制设备与设备进行通信。在生活中,可以使用WIFI智能插座控制电器开关,比如远程开启热水器,远程打开空调,窗帘等等。包括:WIFI联网,注册到云服务器上,编写QT UI通过网络来与云服务器通信,然后再下发指令到这个连网的设备。硬件说明:需要有一个串口转WIFI模块,另外需要加上一个USB-TTL模块,外加一根T口USB连接线,可接入PC电脑调试。

嵌入式技术开发 2608

使用Servlet作为控制器

一,使用Servlet作为表现层的三个劣势? 1.开发效率低,所有HTML的标签都需要使用页面输出流来完成。 2.不利于团队协作开发,美工人员无法参与Servlet界面的开发。 3.程序可维护性差,即使修改一个按钮的标题,都必须重新编辑Java代码,并重新编译。 二,在标准的MVC模式中,Servlet及作为什么使用? Servlet仅作为控制器使用,Java EE应用架构正是遵循MVC模

qq_34342083的博客 5159

ArcMap|时空地理加权回归(GTWR)

ArcGIS的GTWR插件下载地址:https://www.researchgate.net/publication/329518786_GTWR_ADDIN_Valid_till_Dec_31_2022 更详细的操作参考: https://www.bilibili.com/video/BV1fR4y1M7xB?spm_id_from=333.999.0.0 https://blog.youkuaiyun.com/weixin_40008135/article/details/112693520 双击“GTWR_Be

个人学习笔记 1万+

JavaWeb实现简易教务管理系统-servlet-jsp-MVC:高效管理教学流程

JavaWeb实现简易教务管理系统-servlet-jsp-MVC:高效管理教学流程 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当前的数字化教育趋势下,教务管理系统的需求日益增长。JavaWeb实现简易教务管理系统-servlet-jsp-MVC正是这样一个项目,它基于JavaWeb技术,采用经典的MVC设计模式,通过servlet和jsp技术实现,旨在为教育机...

gitblog_06720的博客 976

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JSP培训(9)——使用MVC模式完成删除和修改功能

 目标:l         进一步理解MVC模式;l         掌握删除功能的基本实现过程;l         掌握修改功能的基本实现过程。主要内容:l         使用MVC完成删除功能;l         使用MVC模式完成信息更新功能。1、 如何使用MVC模式完成删除功能根据MVC模式的特点,分别考虑MVC的3个部分。n         首先

李绪成的一亩三分地 6836

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝旭第4次培训(MVC + Servlet,jar包介绍,如何导包和使用)

HTTP:http协议特点:1:面向TCP协议:面向连接,安全。2:基于请求-响应模型的:一次请求对应一次响应。3:HTTP协议是无状态协议:对事物处理没有记忆能力,每次请求-响应都是独立的。缺点:多次请求间不能共享数据。优点:速度快。GET请求和POST请求区别:1:GET请求参数在请求行中,没有请求体。POST请求参数在请求体中2:GET请求参数大小有限制,POST没有。

zsq050612的博客 1794

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java ee jsf_Java EE 6:JSF与Servlet + JSP。 我应该学习JSF吗?

我试图通过阅读http://java.sun.com/javaee/6/docs/tutorial/doc/gexaf.html来熟悉Java EE 6。 我对使用JSF感到有些困惑。通常,在我开发Web App的方式中,Servlet将充当控制器,而JSP将充当MVC模型中的View。 那么,JSF是否尝试替换此结构? 以下是上述教程的报价:Servlet are best suited for...

weixin_36287059的博客 203

java mvc设计模式_JavaEE知识点:MVC设计模式

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC模式...

weixin_33936345的博客 439

JSP实现购物车系统:开源项目的核心功能与应用场景

JSP实现购物车系统:开源项目的核心功能与应用场景 去发现同类优质开源项目:https://gitcode.com/ 在当今互联网时代,购物车系统已成为电子商务平台不可或缺的一部分。今天,我们为您推荐一个基于JSP技术的购物车系统,它将帮助您快速搭建属于自己的在线购物体验。以下是该项目的核心功能、技术分析、应用场景及特点。 项目介绍 本项目是一个基于JSP技术的购物车系统实现,集成了JSP、Jav...

gitblog_06778的博客 408

JSP培训(8)——添加功能和分页显示

wb5601257的专栏 381

JSP培训(1)——概述

本文是JSP培训的笔记,是培训的第一次——概述。 (参考《Java Web程序设计基础教程》第1章) 学习目标: l 掌握JSP的概念; l 了解JSP与Java之间的关系; l 了解JSP要解决的问题; l 了解JSP的发展过程; l 了解JSP的关键技术; l 掌握JSP的运行所需要的环境; l 掌握JSP开发的基本过程。 1、JSP是什么 JavaS...

Java Web 开发教程 767

Servlet培训笔记

jsp两个功能: 显示:html 【擅长】 逻辑:java servlet: 两个功能: 显示:html 逻辑:java 【擅长】 程序:jsp+servlet 1:使用向导创建第一个servlet程序:FirstServlet.java 2:解决修改java文件后tomcat不自动重启的问题 修改tomcat下的一个配置文件:conf/context.xml, 在context标签下

新手记录工作中成长点滴- 845

培训目录

李绪成的一亩三分地 1595
上一篇: JSP培训(5)——使用JavaBean完成业务逻辑
下一篇: JSP培训(7)——使用JDBC完成动态验证、采用MVC完成数据查询
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值