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

目标:
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的设计模式开发的个人信息管理系统。 立即下载

相关推荐

XGBoost的简单安装及入门使用

XGBoost安装及简单入门 XGBoost支持多种操作系统,如Windows, Linux, MacOS等,并支持多种语言版本,如Python, R, Scale, Java等。XGBoost的安装方式一般有两种,一种是直接通过pip安装(适合用于Python),另外一种是通过源码编译安装 1、通过pip安装 通过pip安装Python包既简单又方便,只需执行如下的命令: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xgboost 使用

qq_41513230的博客 3万+

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

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

qq_51913390的博客 7754

手把手教你用ADS仿真FMMT417雪崩三极管,搞定射频脉冲源设计

本文详细介绍了如何使用ADS仿真工具设计基于FMMT417雪崩三极管的射频脉冲源。从器件选型、SPICE模型导入到电路设计与优化,提供了一套完整的实操方案,特别适合射频脉冲设计的初学者。通过级联设计和实测验证,帮助工程师快速掌握雪崩电路的应用技巧,提升射频脉冲源的设计效率。

weixin_30905981的博客 491

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

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

weixin_64180522的博客 1149

[Github]GitHub 2FA快速安全配置全攻略

GitHub强制要求用户启用双重身份验证(2FA)以提升代码安全。本文详细介绍了2FA的三种实现方式:TOTP应用验证(推荐)、SMS短信验证(备用)和硬件安全密钥(最安全),并提供了配置指南。特别推荐使用在线工具2FA.run快速测试TOTP功能。文章还涵盖恢复代码管理、企业级2FA策略制定以及常见问题解决方案,如时间同步问题、多设备同步等。通过强制2FA、定期审计和建立安全事件响应流程,开发者可构建更安全的代码管理体系。

冰茶的博客 2625

洛谷 P5736 【深基7.例2】质数筛

题目描述 输入 n(n\le100)n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。 输入格式 无 输出格式 无 输入输出样例 输入 #1 复制 5 3 4 5 6 7 输出 #1 复制 3 5 7 板子题,使用一下线性筛 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using n

qq_37978559的博客 1117

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

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

Claire的博客 7270

别再乱改基础库了!手把手教你搞定uni-app小程序上传图片报错(chooseAndUploadFile权限篇)

本文详细解析了uni-app开发微信小程序时遇到的`chooseAndUploadFile`权限报错问题,并提供了四步解决方案。从隐私协议与API权限的关联入手,指导开发者正确配置后台声明、双重提交策略和版本管理,避免降级基础库等常见误区,确保小程序合规运行。

weixin_33709364的博客 277

jsp学习(六.MVC模式)

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

m0_49936845的博客 1598

PCL 点云拟合 最小二乘法拟合平面

在点云处理领域,最小二乘法(Least Squares)拟合是一种常用的数学方法,用于估计数据点的最佳拟合曲线或平面。平面拟合广泛应用于点云数据处理中的地面检测、物体表面分析等任务。 本文将介绍如何使用PCL库实现基于最小二乘法的平面拟合算法,通过拟合点云数据中的平面,来提取出数据的平面部分。

纵马踏花向自由 1027

2025年12月GESP真题及题解(C++一级): 小杨的爱心快递

2025年12月GESP真题及题解(C++一级): 小杨的爱心快递

王老师青少年编程 1650

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

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

gitblog_06720的博客 976

第十六篇:Camx IFE 、OPE 各 port口功能定义

需要注意的是,类似 CSLTFEPortIdRawDump 是没有downscale功能的,所以如果遇到fov不正确的问题,可以排除下TFE这边的 output port是否被接到了 CSLTFEPortIdRawDump 上面来。我们知道Camx 的IFE 、OPE有不少的output port,各个port是有哪些功能的呢?老一点的框架平台,采用的TEF、OPE。

238

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

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

李绪成的一亩三分地 6836

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Statistics and Machine Learning Toolbox

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

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

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

zsq050612的博客 1794

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

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

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

培训目录

李绪成的一亩三分地 1595

Servlet培训笔记

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

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

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

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

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值