Java Web实践专题——基本MVC实例

本文介绍了一个MVC实例,涉及文件如下:
l login.jsp——视图部分的输入文件
l success.jsp——视图部分的输出文件
l failure.jsp——视图部分的输出文件
l LoginBean.java——模型部分
l LoginServlet.java——控制器部分
l web.xml——web应用的配置文件
下面分别介绍:
1、login.jsp
该功能的输入文件,用户首先访问这个文件。主要用于输入用户名和口令。
代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<script language="JavaScript">
function isValidate(form)
{
// 得到用户输入的信息
username = form.username.value;
userpass = form.userpass.value;
// 判断用户名长度
if(!minLength(username,6))
{
alert("用户名长度小于6位!");
form.username.focus();
return false;
}
if(!maxLength(username,8))
{
alert("用户名长度大于8位!");
form.username.focus();
return false;
}
// 判断口令长度
if(!minLength(userpass,6))
{
alert("口令长度小于6位!");
form.userpass.focus();
return false;
}
if(!maxLength(userpass,8))
{
alert("口令长度大于8位!");
form.userpass.focus();
return false;
}
return true;
}
// 验证是否满足最小长度
function minLength(str,length)
{
if(str.length>=length)
return true;
else
return false;
}
// 判断是否满足最大长度
function maxLength(str,length)
{
if(str.length<=length)
return true;
else
return false;
}
</script>
<html>
<head>
<title>用户登陆</title>
</head>
<body>
<h2>用户登录</h2>
<form name="form1" action="login" method="post"
onsubmit="return isValidate(form1)">
用户名:<input type="text" name="username"> <br>
口令:<input type="password" name="userpass"><br>
<input type="reset" value="重置">
<input type="submit" value="提交"><br>
</form>
</body>
</html>
代码中提供了客户端验证功能(用户名和口令的长度为6-8位)。验证通过之后会把请求提交给控制器Servlet。
2、success.jsp
登录成功之后会跳转到这个界面,界面的代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h2>${sessionScope.username}您好,欢迎登录网上书店!</h2>
</body>
</html>
代码中使用表达式语言把登录后的用户信息显示在街面上。
3、failure.jsp
登录失败后会跳转到这个界面,界面的代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>登录失败</title>
</head>
<body>
<h2>用户名或者口令不正确,请<a href="login.jsp">重新登录!</a></h2>
</body>
</html>
代码中提供了一个超链接,能够链接到登录界面。
4、LoginBean.java
完成登录功能,这里假设用户名和口令相等表示登录成功。
package beans;
public class LoginBean {
public boolean validate(String username,String userpass){
return username.equals(userpass);
}
}
5、LoginServlet.java
该文件完成控制,主要功能可以描述如下:
l 从login.jsp获取用户输入的用户名和口令;
l 创建LoginBean的对象,调用LoginBean的方法validate;
l 根据方法返回的结果,选择success.jsp或者failure.jsp对用户响应。
完整的代码如下:
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
import beans.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取用户输入的用户ID和口令
String username = request.getParameter("username");
String userpass = request.getParameter("userpass");
// 创建模型对象
LoginBean loginBean = new LoginBean();
// 调用业务方法进行验证
boolean b = loginBean.validate(username,userpass);
// 要转向的文件
String forward;
// 如果登陆成功,把用户名写入session中,并且转向success.jsp,
// 否则转向failure.jsp
if(b){
// 获取session
HttpSession session = (HttpSession)request.getSession(true);
// 把用户名保存到session中
session.setAttribute("username",username);
// 目标转向文件是success.jsp
forward = "success.jsp";
}else{
// 目标转向文件是failure.jsp
forward = "failure.jsp";
}
// 获取Dispatcher对象
RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
// 完成跳转
dispatcher.forward(request,response);
}
}
代码中把登录用户的用户信息保存在了session中,在实际应用中同样也是这样处理的。
6、web.xml
主要代码是Servlet的配置,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlets.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>login</url-pattern>
</servlet-mapping>
</web-app>
Java 综合项目开发实战:从 0 到 1 打造你的专属项目 用户认证与权限管理商品管理与分类浏览购物车与订单处理支付接口集成后台管理系统。 阅读详情

相关推荐

Github标星25K+超火的Java实战项目,java面试视频软件

本人之前在干兼职的时候,也忽视过本职工作,从而导致自己落后平均技术水平,虽然之后迎头赶上,但这不能不算是个遗憾。前在接一些活的时候就感觉技术的重要性了,如果当年我技术再好些,可能还有机会进BAT,这样现在的技术或许更精,更能接些技术含量好,同时也是挣钱效率高的活,比如录高深技术的视频。打个不恰当的比方,比如有些人在初中毕业后就去挣钱,与之相比,一些上高中上大学甚至上研究生的人在这阶段收入很少,那个时候的我可能就像初中毕业的打工者,在没做精本职工作、忽视技术挣兼职钱的时候还沾沾自喜。

Y1567409的博客 973

2023全新开源十个Java实战项目-可上手企业

代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载。部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。用户管理:用户是系统操作者,该功能主要完成系统用户配置。菜单管理:配置系统菜单,操作权限,按钮权限标识等。缓存监控:对系统的缓存查询,删除、清空等操作。

Aliang的博客 2万+

深入解析Java Web MVC架构:从概念到实践

JavaWEBMVC写JavaWeb项目时会发现,一个中型或者大型项目随着代码的增多,会发现:代码既可以写在src目录下,也可以写在WebContent目录下。src下可以建很多包,WebContent下可以建很多文件夹。所以问题就来了:一个新的类到底往哪个目录下的哪个文件夹里写?此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。1.MVC设计模式WebMVC中的M(模型)-V(视图)-C(控制器概念和标准MVC。

liyaxin11的博客 910

你必看的Java实战练手项目(附源码)

Ting域主持人项目是一个标准的互联网项目,主要为各种需要主持人的场合提供主持人聘请相关功能。项目包含了前台和后台。前台主要是让新人和婚庆公司搜索相关主持人并进行聘请,在线对主持人下订单。后台是让主持人对自己订单的管理以及管理员对整个平台的管理。

AIBIANCHENGING的博客 1万+

Spring Web MVC

Spring MVC 是个实现了 MVC 模式的 Web 框架Spring Boot 只是实现Spring MVC的其中种式已.Spring Boot 可以添加很多依赖, 借助这些依赖实现不同的功能. Spring Boot 通过添加Spring WebMVC框架, 来实现web功能不过Spring在实现MVC时, 也结合项的特点, 做了些改变@RequestMapping 是 Spring Web MVC 应程序中最常被到的注解之,它是来注册接的路由映射的.

Ase5gqe的博客 1448

Spring Web MVC:从入门到实践

Spring Web MVC是一个基于MVC(Model-View-Controller)模式的Web框架,它允许开发者构建具有清晰关注点分离的Web应用程序。MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种分离使得代码更加模块化,便于维护和扩展。Spring Web MVC是一个功能强大且灵活的Web框架,它通过MVC模式清晰地分离了关注点,使得开发和维护Web应用程序变得更加容易。

2501_90323865的博客 990

Java Web MVC

MVC开发模式 写在最前 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: [1] Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)显示数据(数据库记录)。 Controller(控制器)处理输入(写入数据库记录)。 MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的...

尔等同学的博客 7943

魔乐先生 JAVA-WEB开发实战笔记pdf格式

IT电子教育门户 魔乐先生 李兴华老师主讲,就不用多说了吧 看了绝对让你后悔现在才了解他 市面上大多JAVA培训教程以J2SE为主,J2EE教程凤毛麟角,MLDN本次出品《魔乐先生 JAVA-WEB开发实战》 突出了JAVAWEB基础语法的讲解,从JSP的基础知识和基本语法入手,循序渐进、深入浅出地介绍了JSP的各种技术, 并配以大量的实例,和精选的代码,细致讲解JAVA-WEB动态网页编程的方法与技巧。是广大IT学子踏入WEB开发的良师益友。 [版权声明] 本套资料版权归属于IT电子教育门户和李兴华老师所有,任何机构或个人不得擅自将其作为商业用途。

Java Web开发详解:从入门到实践

JDBC(Java Database Connectivity)是Java访问数据库的标准API。Java Web开发以其强大的功能和丰富的生态系统,成为构建现代Web应用的首选技术之一。通过掌握Servlet、JSP、Spring等核心技术,以及遵循最佳实践,您可以开发出高性能、可扩展和安全的Web应用程序。希望本篇文章对您的Java Web开发之旅有所帮助。

weidl001的博客 5814

Struts2 + Spring3 + Hibernate3.5 整合(实际使用项目,version2)

这是一个实际使用中的项目,可访问 http://cdbke.cuit.edu.cn 可查看效果及功能,后台需要登录后才能使用(出于安全性考虑这里就不给大家介绍了,另外还有一个struts1版本的,如有需要可以与我联系)。 此项目整合了目前主流和最前源的web开发技术:采用ehcache实现二级缓存(包含查询缓存);用sf4j及logback(log4j的升级版)记录日志;proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿google人名自动补全;头像上传剪切压缩处理。 包含有完整的jar包和源代码,可以直接下载编译部署和运行,这是专门为我们实验室定制开发的。虽然后台逻辑并不复杂,但已经包含了架构基于s2sh技术型系统的全部基础部分:如分页,缓存,文件上传,连接池等。很适合学习使用,希望对初学JavaEE WEB开的人有所帮助。 这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范检查,代码审查等功能(与此相关的jar包由于上传文件大小限制未导入) 本系统一直在使用中,所以还会不段更新,之后我打算再做一个基于javaee6的实现,给需要想学习ejb3.1等技术的朋友一个参考实现 集成测试相关jar包和更新构建脚本下载:http://download.youkuaiyun.com/source/2427972

java web strut电子商城.rar

java web 中型网站 采用Strut框架

【Spring MVC】MVC设计模式的Java Web框架

Spring MVC 是 Spring 框架中的一个模块,基于 Model-View-Controller (MVC) 设计模式,用于构建灵活和可扩展的 Java Web 应用程序。它通过前端控制器 DispatcherServlet 处理所有请求,并将请求分发给对应的控制器,负责业务逻辑处理,再将结果传递给视图进行渲染,简化了开发过程并实现了应用程序的高效组织和维护。​

科马的博客 3384

用JSP实现网页收藏实例源码

用JSP+servlet+JDBC实现的网页收藏项目,该实例有增删改查所有功能,采用ADO设计模式实现,已经过本人测试,希望对广大的JAVA爱好者有所帮助

java mvc实例_Java Web实现的基本MVC实例分析

本文实例讲述了Java Web实现的基本MVC。分享给大家供大家参考。具体如下:login.jsp——视图部分的输入文件success.jsp——视图部分的输出文件failure.jsp——视图部分的输出文件LoginBean.java——模型部分LoginServlet.java——控制器部分web.xml——web应用的配置文件下面分别介绍:1、login.jsp该功能的输入文件,用户首先访问...

weixin_30028221的博客 311

Kubernetes集群资源优化实战:Volcano调度器如何帮你省下30%GPU算力

本文详细介绍了如何通过Volcano调度器的Binpack策略优化Kubernetes集群中的GPU资源利用率,解决AI模型训练中的资源碎片化问题。通过实战配置和调优指南,帮助用户提升30%的GPU算力利用率,显著降低任务等待时间和硬件成本。

weixin_30832143的博客 507

R | 提取文件夹内栅格数据的最小值、最大值、标准差和平均值

各位同学好,我们长需要用长时间序列栅格数据的平均值做变量的时间变化分析,用代码能够帮助我们省下很多时间。

qq_48539301的博客 450

基本的Java的MVC入门案例

概念: MVC:Model View Controller:模型、视图、控制器。他是一种专门设计web程序的模式 高内聚、低耦合(高内聚:专人干专事;低耦合:让类与类之间的关系不能太紧密) 模型(Model):是应用程序中与处理应用程序数据逻辑的部分。存数据、处理数据 视图 (View):是应用程序中处理数据显示的部分。展示数据 控制器(Controller):是应用程序中处理用户交互的部分。接收数据或者跳转页面 在MVC设计模式基础之上进一步的提出了java web的三层架构的思想: 表示层

默主归沙的博客 6922

pgAdmin4备份恢复实战:从安装到避坑指南

本文提供了一份详尽的pgAdmin4备份恢复实战指南,涵盖从安装配置到执行备份恢复的全流程。针对Windows环境下的浏览器兼容性、二进制路径配置等常见问题,给出了具体解决方案。重点强调了使用pgAdmin4进行备份恢复的可靠性,特别是在处理包含PostGIS等扩展的数据库时,能有效避免数据类型和权限错误,确保数据迁移的完整性与安全性。

weixin_29266007的博客 439
上一篇: Java Web实践专题——Log4j
下一篇: Java Web实践专题——MD5加密
Java_Web_Book
博客等级 码龄18年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值