文档章节

实现自己的控制层do-c (仿Struts2和SpringMVC)(二)

v
 valuetodays
发布于 2016/07/04 18:04
字数 485
阅读 30
收藏 0

说到框架我们可能直接想到的就是接值传值,其实普通servlet也可以使用,框架在它的基础上加以优化调整升级了。下面本人将以普通servlet传值、Struts2传值和SpringMVC传值,借以引出自己的控制层。

普通servlet接值

现有jsp页面,其中只有一个form表单,如下

<form id="form0" name="form0" method="post" action="/userSave.do">
    <input type="text" name="username" />
    <input type="text" name="gender" />
    <input type="text" name="age" />
    <input type="text" name="height" />
    <input type="submit" value="提交" />
</form>

用户点击提交,请求会被跳转到名称为usserSave的Servlet的doPost方法中。在该方法中取值的方式为:

  • String username = request.getParameter("username");
  • String gender = request.getParameter("gender");
  • String age = request.getParameter("age");
  • String height = request.getParameter("height");

当然还有类型转换,如下将假设数据不为空:

  • char c_gender = Charcter.valueOf("gender");
  • int i_age = Integer.valueOf("age");
  • float f_height = Float.valueOf("height");

其后还得将数据封装到对应的实体中:

  • UserEntity user = new UserEntity();
  • user.setUsername(username);
  • user.setGender(c_gender);
  • user.setAge(i_age);
  • user.setHeight(f_height);

使用普通servlet进行接值的流程大概就是这些,我们可以看到这比较烦琐。尤其需要说明的是,在企业级应用开发中一个实体有50~100个字段也不是件奇怪的事,所以……所以上面的方式将会增加开发人员的开发时间,同时,

代码写的多了,出错率也会更高。

不利于项目的维护,以及未知的bug将会更多。 我们自己都感觉到烦琐,美国的那些程序员当然早就感到厌烦了,所以他们整出了Struts框架……

最后附上UserSaveServlet的伪代码(代码纯手写,不一定能运行):

public class UserSaveServlet extends HttpServlet {

    public doGet(HttpServletRequest request, HttpServletResponse response) {
        String username = request.getParameter("username");
        String gender = request.getParameter("gender");
        String age = request.getParameter("age");
        String height = request.getParameter("height");

        char c_gender = Character.valueOf("gender");
        int i_age = Integer.valueOf("age");
        float f_height = Float.valueOf("height");

        UserEntity user = new UserEntity();
        user.setUsername(username);
        user.setGender(c_gender);
        user.setAge(i_age);
        user.setHeight(f_height);
    new UserService().save(user);
    }
}

© 著作权归作者所有

v
粉丝 4
博文 30
码字总数 27304
作品 0
昌平
程序员
私信 提问
实现自己的控制层do-c (仿Struts2和SpringMVC)(一)

do-c是一款仿照Struts2和SpringMVC框架的一个控制层框架,用于接收前端页面的数据以及向页面的跳转。 JavaWeb开发者大都听过Struts2或SpringMVC这样鼎鼎有名的框架,它们也提供了强大的功能让...

valuetodays
2016/07/04
20
0
实现自己的控制层do-c (仿Struts2和SpringMVC)(四)

上篇博客简单说明了Struts2是如何传值的。相对于普通servet,它更方便程序员使用,也奠定了在JavaWeb企业级应用开发的地位。就像上篇博客中最后提到的,Struts2也有缺点,从代码角度讲这个缺...

valuetodays
2016/07/05
117
0
【Java框架】Java EE框架常见的面试题

一、什么是Spring? 1、Spring的核心是一个轻量级(Lightweight)的容器(Container)。 2、Spring是实现IoC(Inversion of Control)容器和非入侵性(No intrusive)的框架。 3、Spring提供...

林元煌
2017/07/31
0
0
系列一、SpringMVC概念及测试案例

三层架构和MVC概念 一.、三层架构概念 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序,使用Java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构 ...

我叫小糖主
05/27
23
0
Spring MVC和Struts2的比较的优点

虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比较, 今天闲着没事干...

陈昊Sevens
2012/09/22
4.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
42分钟前
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
44分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部