北京厦门网站优化英文营销网站建设

web/2025/10/2 16:56:05/文章来源:
北京厦门网站优化,英文营销网站建设,做外汇网站代理商,企业网站建设开发服务目录#xff1a; 【SSH进阶之路】Struts基本原理 实现简单登录#xff08;二#xff09; 【SSH进阶之路】一步步重构MVC实现Struts框架——从一个简单MVC开始#xff08;三#xff09; 【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径#xff08… 目录       【SSH进阶之路】Struts基本原理 实现简单登录二       【SSH进阶之路】一步步重构MVC实现Struts框架——从一个简单MVC开始三       【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径四       【SSH进阶之路】一步步重构MVC实现Struts框架——彻底去掉逻辑判断五       【SSH进阶之路】一步步重构MVC实现Struts框架——完善转向页面大功告成六          Struts的第二篇博客【SSH进阶之路】Struts基本原理 实现简单登录二我们介绍了MVC和Struts的基本理论上篇博客【SSH进阶之路】一步步重构MVC实现Struts框架——从一个简单MVC开始三我们实现了一个MVC模型这篇博客我们解决一下上篇博客留下的第一个问题封装业务逻辑和跳转路径。        我们先回顾一下上篇博客中的TestServlet的代码 package com.liang.servlet;import java.io.IOException; import java.util.List;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /*** 使用servlet做相关的控制转向多个V视图* author liang**/ public class TestServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//取得访问的URIString reqeuestURI request.getRequestURI();System.out.println(reqeuestURI);//截取URI获得路径String path reqeuestURI.substring(reqeuestURI.indexOf(/,1), reqeuestURI.indexOf(.));System.out.println(path);//获得表单数据String username request.getParameter(username);UserManager userManager new UserManager();String forward ;//根据url执行相关的功能//等于添加调用添加方法添加成功转到添加页面if(/servlet/addUser.equals(path)){//调用添加的业务逻辑userManager.add(username);forward /add_success.jsp;//删除调用删除方法删除成功转到删除}else if(/servlet/delUser.equals(path)){//调用删除的业务逻辑userManager.del(username);forward /del_success.jsp;//修改调用修改方法修改成功转到修改页面}else if(/servlet/modifyUser.equals(path)){//调用修改的业务逻辑userManager.modify(username);forward /modify_success.jsp;//查询调用查询方法查询成功转到查询成功页面}else if(/servlet/queryUser.equals(path)){//调用查询的业务逻辑List userList userManager.query(username);request.setAttribute(userList, userList);forward /query_success.jsp;}else{throw new RuntimeException(请求失败);}//统一完成转向request.getRequestDispatcher(forward).forward(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}}                从TestServlet中我们发现它就是一个简单的Servlet它是Struts的前端控制器负责把所有的URL截取下来通过IF语句根据URL的不同执行相关的功能并且添加删除修改和查询各自有各自的业务逻辑和跳转路径我们可以各自的业务逻辑和跳转路径封装成不同的类并抽象出一个公共接口如下所示 下面我们看一下接口和实现类的代码 接口Action package com.liang.servlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public interface Action {public String execute(HttpServletRequest req, HttpServletResponse resp)throws Exception; } 添加用户AddUserAction package com.liang.servlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class AddUserAction implements Action {Overridepublic String execute(HttpServletRequest req, HttpServletResponse resp)throws Exception {//获取参数String username req.getParameter(username);UserManager userManager new UserManager();//调用业务逻辑userManager.add(username);//返回跳转页面return /add_success.jsp;}} 删除用户DelUserAction package com.liang.servlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class DelUserAction implements Action {Overridepublic String execute(HttpServletRequest req, HttpServletResponse resp)throws Exception { span stylewhite-space:pre /span//获取参数String username req.getParameter(username);UserManager userManager new UserManager();//调用业务逻辑userManager.del(username);//返回跳转页面return /del_success.jsp;}} 修改用户ModifyUserAction package com.liang.servlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class ModifyUserAction implements Action {Overridepublic String execute(HttpServletRequest req, HttpServletResponse resp)throws Exception {//获取参数String username req.getParameter(username);//调用业务逻辑UserManager userManager new UserManager();userManager.modify(username);//返回跳转页面return /modify_success.jsp;}} 查询用户QueryUserAction package com.liang.servlet;import java.util.List;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class QueryUserAction implements Action {Overridepublic String execute(HttpServletRequest req, HttpServletResponse resp)throws Exception {//获取参数String username req.getParameter(username);//调用业务逻辑UserManager userManager new UserManager();List userList userManager.query(username);req.setAttribute(userList, userList);userManager.query(username);//返回跳转页面return /query_success.jsp;}} 我们再对比看一下我们封装之后的TestServlet package com.liang.servlet;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.liang.action.Action; import com.liang.action.AddUserAction; import com.liang.action.DelUserAction; import com.liang.action.ModifyUserAction; import com.liang.action.QueryUserAction; /*** 使用servlet做相关的控制转向多个V视图* author liang**/ public class TestServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//取得访问的URIString reqeuestURI request.getRequestURI();System.out.println(reqeuestURI);//截取URI获得路径String path reqeuestURI.substring(reqeuestURI.indexOf(/,1), reqeuestURI.indexOf(.));System.out.println(path);Action action null;//等于添加调用AddUserActionif (/servlet/addUser.equals(path)) {action new AddUserAction();//等于删除调用DelUserAction}else if (/servlet/delUser.equals(path)) {action new DelUserAction();//等于修改调用ModifyUserAction}else if (/servlet/modifyUser.equals(path)) {action new ModifyUserAction();//等于查询调用QueryUserAction}else if (/servlet/queryUser.equals(path)) {action new QueryUserAction();}else {throw new RuntimeException(请求失败);}String forward null;//返回不同的转向页面try {forward action.execute(request, response);} catch (Exception e) {e.printStackTrace();}//根据路径,统一完成转向request.getRequestDispatcher(forward).forward(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}}通过对比我们可以发现简单了很多但是实现的道理基本一样仍然是将path截取出来做相应的判断进入对应的分支New一个刚写的ActionNew谁调谁但是此时仅仅是完成了功能系统并不灵活IF...ELSE并没有去掉扩展性不好不能适用需求。       下篇博客【SSH进阶之路】一步步重构MVC实现Struts框架——彻底去掉判断逻辑五我们解决第二个问题IF...ElSE的问题。        源码下载 转载于:https://www.cnblogs.com/ainima/p/6330997.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精品个人网站源码下载如何做好网站建设的关键重点

更多 CSP 认证考试题目题解可以前往:CSP-CCF 认证考试真题题解 原题链接: 202403-1 词频统计 时间限制: 1.0 秒 空间限制: 512 MiB 题目描述 在学习了文本处理后,小 P 对英语书中的 n n n 篇文章进行了初步整理。 …

如何联系网站wordpress 注册设置密码

磐石云PSCC系统是一款大型呼叫中心解决方案软件,基于fs做通讯层,经过无数次锤炼而得到目前的稳定性! 先来说说系统所使用的行业;呼出型呼叫中心、房产咨询、教育咨询、电信增值业务、行业应用,医疗保险、金融机构服务&…

淘客免费网站建设网站建设项目功能需求分析报告

数据科学、统计学、商业分析是在各方面有着不同的侧重和方向的领域。 1.专业技能 数据科学(Data Science):数据科学涉及从大量数据中提取有价值的信息、模式和洞察力的领域。它使用多种技术和领域知识,如统计学、机器学习、数据库…

vs2008如何新建网站福建建设厅官网

一、题目 1、题目描述 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 示例1: 输入:n = 12 输出:3 解释:1…

房地产营销策划方案泉州seo外包平台

很少在Blog上写自己的生活,很少在Blog上写自己的琐事,觉得没什么好写的。来这座城市8年了,从毕业到工作,所有的这3000多个日子过得很充实但是也很艰辛,我经常笑,因为没有什么能比笑容更能释放压力。  不知…

资讯网站 整体uiseo短视频网页入口引流网站

目标:通过本文可以快速实现windows 网络问题定位。 ipconfig:查看本机网络配置情况 C:\Users\zzg>ipconfigWindows IP 配置以太网适配器 以太网:媒体状态 . . . . . . . . . . . . : 媒体已断开连接连接特定的 DNS 后缀 . . . . . . . :无线局域网适配器 本地…

购物类网站都有哪些模块网站托管要求

目录 一、认识MATLAB 二、认识工具箱 三、基本操作和函数 3.1 算术操作符 3.2 数学函数 3.3 矩阵操作 3.4 索引和切片 3.5 逻辑操作 3.6 控制流程 3.7 数据输入输出 四、变量和数据类型 4.1 数值类型 4.2 整型 4.3 复数 4.4 字符串 4.5 逻辑类型 4.6 结构体&a…

网站盈利模式有哪几种wordpress 数据库链接

转载自 分布式架构--基本思想汇总 在互联网大行其道的今天,各种分布式系统已经司空见惯。搜索引擎、电商网站、微博、微信、O2O平台。。凡是涉及到大规模用户、高并发访问的,无一不是分布式。 关于分布式系统,并没有…

小说网站如何建设排名好的宜昌网站建设

在使用笔记本电脑过程中,如果不小心将SD卡里面的重要数据弄丢怎么办呢?别着急,本文将向您介绍SD卡数据丢失常见原因和恢复方法。 ▌一、SD卡数据丢失常见原因 - 意外删除:误操作或不小心将文件或文件夹删除。 - 误格式化&#…

松江区环保局网站建设项目备案域名权重查询工具

基于web宠颐生医院系统开发与实现 摘要:时代飞速发展,网络也飞速发展,互联网许多的行业都可以用互联网实现了,互联网已经成为了人们生活中重要的一部分,或多或少的影响着我们的生活,互联网在给我带了方便的…

襄阳网站建设哪个好如何优化seo

一、上传素材 1.上传全景素材 第一步:进入【素材管理】 第二步:选择【全景图智慧景区】分类 第三步:选择相对景区作品分组,上传全景素材 2.素材标注 第一步:选择上传成功后素材,点击【未标注】 第二步&…

360网站seo怎么做广告联盟赚钱app

华子目录 管理Ansible静态清单1.定义主机清单2.两种方式定义主机清单3.使用静态主机清单指定受管主机(默认)3.1产生原因3.2静态主机清单文件本质3.3清单内容分析(不分组)3.4清单内容分析(分组)3.5通过范围简…

网站建设伍金手指下拉7网站建设专业可行性分析

1.什么是位图 所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。比如int 有32位,就可以存放0到31这32个数字在不在某个文件中。当然,其他类型也可以。 2.位…

成功案例网站建设怎么自己做网站吗

前言 日常开发中常会使用redis作为项目中的缓存,只要我们使用 Redis 缓存,就必然会面对缓存和数据库间的一致性保证问题。而且如果数据不一致,那么应用从缓存中读取的数据就不是最新数据,可能会导致严重的业务问题。 为什么会数…

电子商务网站建设系统功能梅州南站

这个视频flash上传及在线播放,搞了我一天了,总算有点成果,但还有一些疑问没有解决,现在发这篇随笔,为的就是交流视频在线上传和观看的一些问题。 在线编辑器使用FCKEditor,首先是修改FCKEditor的配置文件&a…

电子商务网站建设考纲网站建设 10万元

提到降噪强度(denoising strength),大家一定不会陌生,这个参数是图生图中最关键的参数之一。今天在Stable Diffusion Art网站看到一篇介绍降噪强度(denoising strength)的文章(地址:…

多国语言外贸网站模板上海建设网站哪家好

1.索引 1.1创建索引: create index 索引名称 on 某张表 (列名) 示例: create index index_name on table (Column names) 1.2索引优化 MySQL数据库索引优化是提高查询性能的重要手段。以下是一些关键的索引优化策略: 选择正确的索引列: 经常需要排序、分组和联…

建行商城网站单页面网站可以做自适应网站吗

流动性激励计划Moonbeam Ignite是帮助用户轻松愉快体验Moonbeam生态的趣味活动。在Moonbeam跨链连接的推动下,DeFi的各种可能性在这里爆发。DeFi或许不热门,但总有机会捡漏,了解Monbeam生态项目,我们邀请Moonbeam大使分享他们的研…

欢迎访问中国建设银行官方网站个人注册公司需要什么手续

2020深圳市公务员招录1069人公告已发布,报名时间:11月13日-19日16:00,报名入口:深圳市考试院专栏(http://hrss.sz.gov.cn/szksy/)或深圳市人事考试考生服务系统(以下简称考生服务系统,https://hrsstext.sz.gov.cn/ess/…

义乌个人兼职做建设网站查建筑公司网站

啥都不说先看效果图demoIMG_0270.PNG先来说说如何自定义大头针以及点击大头针时弹出的泡泡view一 : 自定义大头针新建CustomAnnotationView 继承自MAAnnotationView添加属性重写- (id)initWithAnnotation:(id)annotation reuseIdentifier:(NSString *)reuseIdentifier重写- (BO…