JSP MVC
Java的MVC玩起来比.Net的有意思,因为每一步你都知道它是如何运作的,都由自己去实现。而在.Net的MVC中,你却不知道一个Controller是如何对应到View中的,因为MS给了你IDE上的操作方便,具体内部是如何做的映射,很难找到或不知道。
Java MVC的原理可有这样理解(网上说是这种):JSP -> Servlet -> JSP
(个人认为最合适的是这样解释比较好):Servlet -> JSP
即不需要让用户直接访问JSP。因为这是Resful风格哈。
上代码例子。
建一个Bean: User
package com.my.beans;
import java.lang.*;
public class User {
private String name;
private String password;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User() {}
}
建一个JSP:mvctest.jsp
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%> <html>
<header>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</header>
<body>
<form action="${pageContext.request.contextPath}/requestattr" method="POST">
User name: <input type="textbox" id="txtUserName" name="txtUserName" value="${param.txtUserName}" />
<input type="submit" value="Submit" /><br/>
<hr />
User name textbox value: ${param.txtUserName}<br/>
Bean user name value: ${userBean.name}<br/>
Bean password value: ${userBean.password}<br/>
Bean age value: ${userBean.age}<br/>
</form>
</body>
</html>
建一个Servlet: RequestAttr
package com.my; import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; import com.my.beans.User; public class RequestAttr extends HttpServlet {
public RequestAttr() {} public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
req.getRequestDispatcher("/pages/mvctest.jsp").forward(req, resp);
} public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
PrintWriter out = resp.getWriter(); String strUserName = req.getParameter("txtUserName"); User user = new User();
user.setName(strUserName);
user.setPassword("123");
user.setAge(18); req.setAttribute("userBean", user);
req.getRequestDispatcher("/pages/mvctest.jsp").forward(req, resp);
}
}
web.xml修改:
<servlet>
<servlet-name>requestattr</servlet-name>
<servlet-class>com.my.RequestAttr</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>requestattr</servlet-name>
<url-pattern>/requestattr</url-pattern>
</servlet-mapping>
结果:
访问地址:http://localhost:8080/mytest/requestattr
一个MVC模型如来。性奋....
JSP MVC的更多相关文章
- JSP——MVC模式+Servlet生命周期
设计模式MVC模式 模型MODEL操作数据库的增删改查——javaBean 视图VIEW显示数据——JSP 控制器CONTROLLER响应用户的——servlet Model(模型),是程序的主体部分 ...
- 【web】支持jsp+mvc访问
直接使用SpringMVC时配置访问jsp页面时很容易的事,但是由于spring Boot使用内嵌的servlet容器,所以对jsp的支持不是很好,而且也不建议使用jsp,但是为了满足这种返回jsp页 ...
- jsp&mvc开发模式&jstl标签&三层架构
目录 jsp 概念 原理 jsp 的脚本 jsp的内置对象 指令 注释 mvc:开发模式 jsp演变历史 mvc 优缺点 El表达式 JSTL 标签 练习 三层架构:软件设计架构 案例:用户信息列表展 ...
- jsp MVC学习笔记
Model层: 四个包: com.maker.bean存放数据库里面的字段信息. package com.maker.bean; public class User { private String ...
- 十五 JSP开发模式&MVC设计模式
JSP开发模式: JavaBean + JSP : 缺点:页面代码过多,不利于维护,JSP页面代码变得臃肿 Servlet + JavaBean + JSP :MVC设计模式 M:model 模 ...
- 避开WebForm天坑,拥抱ASP.Net MVC吧
有鹏友在如鹏网的QQ群中提了一个问题: 请问,在ASP.Net中如何隐藏一个MenuItem,我想根据不同的权限,对功能菜单进行隐藏,用style不行. 如果要仅仅解答这个问题,很好解答,答案很简单: ...
- Spring MVC 入门示例讲解
在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...
- Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC
内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...
- Spring MVC全局异常处理与拦截器校检
在使用Spring MVC进行开发时,总是要对系统异常和用户的异常行为进行处理,以提供给用户友好的提示,也可以提高系统的安全性. 拦截系统响应错误 首先是拦截系统响应错误,这个可以在web.xml中配 ...
随机推荐
- Find Minimum in Rotated Sorted Array II
Follow up for "Find Minimum in Rotated Sorted Array":What if duplicates are allowed? Would ...
- cocos2d-html5 sprite打印宽高都为0的问题
版本是2.1.4,在程序里直接通过图片路径addChild了一个cc.Sprite,想要缩放时通是不起做用,于是通过打印发现其宽,高都为0,查来查去,发现:原来是图片没有注册到Resource.js里 ...
- 快速用springmvc搭建web应用-超越昨天的自己系列(10)
Demo地址:http://pan.baidu.com/s/1sjttKWd 创建命令: mvn archetype:generate -DgroupId=com.witown.open.demo - ...
- SSIS使用OleDB和Ado.Net两种方式调用 存储过程
在使用”执行 SQL 任务“组件调用存储过程时,连接方式使用OleDB和Ado.Net稍有不同,结合图例说明一下 当我们使用OleDB时,设置的截图如下: 参数使用?来代替,Parameter Nam ...
- Sqlserver 远程连接的 TCP/IP 和 Named Pipes的区别
TCP/IP: TCP/IP是 Internet 上广泛使用的通用协议.它与互连网络中硬件结构和操作系统各异的计算机进行通信.TCP/IP包括路由网络流量的标准,并能够提供高级安全功能.它是目前在商 ...
- dedecms调用子栏目内容,缩略图,以及栏目名字
织梦后台栏目页默认是没有添加缩略图的选项的,所以首先我们要调整后台提交表单使界面出现上传图片的地方,如下图所示: 织梦后台默认是没有栏目缩略图选项的,所以首先你需要从网上下载对应需要修改的文件,从 ...
- 114. Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 6 T ...
- win10新增快捷键
按此键 出现位置 重要程度 联想记忆 替代 用途 +A 打开“操作中心” 右侧, ★★★★★ Action 控制面板 +S ...
- Zuoye for guo
A B C D E A - 3 6 10 13 B - - 5 9 12 C - - - 10 13 D - - - - 9 E - ...
- JS初学之-if else图片顺序及循环切换
初学JS,代码还需多多改进,自学中... <!doctype html><html><head><meta charset="utf-8" ...