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方法释放资源。
参考教材:《Java Web程序设计基础教程》

JSP培训目录:

JSP培训(1)——概述
JSP培训(2)——运行原理、文档结构、简单输入输出
JSP培训(3)——客户端验证、常用输出方式、JSTL基本用法
JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:if
JSP培训(5)——使用JavaBean完成业务逻辑
JSP培训(6)——使用Servlet作为控制器实现MVC模式
JSP培训(7)——使用JDBC完成动态验证、采用MVC完成数据查询
JSP培训(8)——添加功能和分页显示
JSP培训(9)——使用MVC模式完成删除和修改功能
JSP培训(10)——使用JavaBean封装对数据库的访问、连接池的配置和使用
JSP培训(11)——Java Web中的安全控制
JSP培训(12)——Java Web应用国际化
JSP培训(13)——异常处理
JSP培训(14)——购物车实例(上)
JSP培训(15)——购物车实例(下)及小结
S32K144 ADC硬件触发+DMA传输实战:从寄存器配置到数据采集全流程 本文详细解析了S32K144微控制器中ADC硬件触发与DMA传输的协同工作机制,提供了从寄存器配置到数据采集的全流程实战指南。通过PDB定时触发ADC转换,并利用DMA实现数据自动搬运,构建了高效、实时的汽车级数据采集系统,有效释放CPU资源,满足汽车电子应用的严苛要求。 阅读详情

相关推荐

嵌入式开发避坑指南:用DWT做延时函数,这几个细节不注意代码会跑飞

本文深入探讨了在Cortex-M嵌入式开发中使用DWT实现精确延时函数的关键技巧与常见陷阱。针对DWT_CYCCNT计数器应用中的内核兼容性、溢出处理、编译器优化等五大核心问题,提供了工业级稳健解决方案,帮助开发者避免代码跑飞风险,实现微秒级高精度延时控制。

weixin_42653691的博客 161

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

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

qq_51913390的博客 7754

均匀直线阵的常规波束形成matlab

常规波束形成概述 波束形成是将基阵各阵元输出进行一定的处理,从而形成基阵空间指向性的技术。一个波束形成器可以对空间某方位的信号有响应,而抑制其他方位的信号,所以又被称为空域滤波。一般分为常规波束形成(CBF)和自适应波束形成(ABF)。 常规波束形成较为基础,一般又可以根据实现的途径不同,分为时延波束形成和频移波束形成。 时延波束形成 在各阵元间添加时延使波束控制于不同方位的方法成为时延波束形成。设定一个目标方向,当信号来源方向在该目标方向时,响应最大;信号来源于其他方向时,响应较小。将这种响应大小

Xujing1143的博客 2万+

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

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

weixin_64180522的博客 1149

OpenFeign, Zuul, Gateway相互不兼容的问题总结

版本 Lib Vresion spring-cloud-starter-gateway 3.1.0 spring-cloud-dependencies 2021.0.0 spring-cloud-starter-netflix-zuul 2.2.6.RELEASE spring-cloud-starter-openfeign 3.1.0 1. Zuul 与OpenFeign 一起使用的问题 错误信息 jav.

Harry的博客 4133

上网第二课:办了百兆宽带,为什么测速只有一半?

最慢的那一环。

qq_36765170的博客 111

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

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

Claire的博客 7270

无感FOC之高频注入法——永磁同步电机控制

1.摘要电机运行在低速或零速时,磁链产生的反电动势很微弱,可用信号的信噪比太低,因而难以从反电动势中提取转子的位置和速度信息。因而在电机处于低速或零速时,需要借助电机的凸极特性来获取转子的位置信息。内置式永磁同步电机或磁密较大的表贴式永磁同步电机具有这种凸极特性,可借助高频电压注入法获取转子位置。2.凸极特性凸极电机内部的气隙是不均匀的,d轴和q轴的有效气隙是不同的,通俗来说在凸极电机里,q轴电感往往大于d轴电感,而在大部分表贴式永磁同步电机,气隙分布相对均匀,q轴电感近似于d轴电感。凸极率常用q轴电感和d

qq_2545470942的博客 2万+

jsp学习(六.MVC模式)

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

m0_49936845的博客 1598

基于粒子群优化的PID控制在药液流量控制系统中的应用

本文提出了一种基于粒子群优化(PSO)的PID控制算法,用于药液流量控制系统。系统采用C37控制器和Codesys 2.3编程环境实现,通过传感器实时监测流量、压力和车速,并控制水泵占空比和电动球阀开度来精确调节药液流量。硬件配置包括FT-2000流量传感器、PT-3000压力传感器和MV-500电动球阀等。控制算法将PSO与PID结合,使用ITAE指标优化PID参数,在Codesys中实现了包含PSO优化循环、PID控制等功能的程序模块。该系统通过分层控制策略和智能优化算法,提高了药液流量控制的精度和响应

AI的内部世界的博客 250

JAX/JAXlib GPU 加速版本安装教程(CUDA)

本文介绍了在Windows WSL2+Ubuntu22.04环境下配置JAX/JAXlib GPU加速版本的详细步骤。使用RTX 4060显卡,安装CUDA 12.4和cuDNN 8.9.7驱动,通过Miniconda创建Python 3.9虚拟环境。具体步骤包括:安装Miniconda、配置CUDA环境变量、安装cuDNN驱动、下载并安装JAX/JAXlib。最后通过测试代码验证GPU加速功能,成功检测到GPU并完成矩阵运算。整个过程配有详细命令和截图说明,适合需要搭建JAX GPU开发环境的用户参考。

猿小白的博客 629

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

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

gitblog_06720的博客 976

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

李绪成的一亩三分地 6836

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

zsq050612的博客 1794

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

心理咨询预约管理系统:一款无框架MVC实践项目

心理咨询预约管理系统:一款无框架MVC实践项目 项目介绍 心理咨询预约管理系统是一个基于MVC模式的开源项目,特别适合作为个人毕业设计或小型实践项目。该项目不依赖于任何框架,完全采用原生Servlet和JSP技术,结合前端Bootstrap框架,实现了心理咨询预约的完整流程。通过该系统,管理员、咨询师和来访者可以高效地进行预约管理、信息交流和咨询档案的建立。 项目技术分析 技术栈 后端: Jav...

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值