springmvc环境的搭建
最近应公司要求,用了2天时间学了springmvc的搭建,就简单总结一下:
springmvc和struts2的比较,因为我是学过struts的,它们都是基于mvc模式而设计的web层框架
它们最大的区别:
1、入口
spring mvc的入口是servlet,而struts2是filter
(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),
这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
2、主要机制
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,参数的传递是直接注入到方法中的,是该方法独有的。
struts2是类级别的拦截, 一个类对应一个request上下文, struts是在接受参数的时候,可以用属性来接受参数, 这就说明参数是让多个方法共享的,
这也就无法用注解或其他方式标识所属方法了
intercepter的实现机制。struts有以自己的interceptor机制,spring mvc 用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,
虽然struts的配置能继承,spring mvc使用更加简洁。
springmvc环境的搭建:
建立一个web项目:
首先在目录/WEB-INF/web.xml配置如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 服务器开启的时候,SpringMVC也开启 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- mvc的名称可以随便取, 这样前台可以通过 /项目名/mvc/控制器指定的name名称访问 -->
<url-pattern>/mvc/*</url-pattern>
</servlet-mapping>
</web-app>
然后还是/WEB-INF/springmvc-servlet.xml(注:该文件名是[servletname]-servlet.xml),内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- 配置controller,由spring来管理controller,前台通过name指定的值来获取访问相应的controller,
因为ID不支持,后面action要和servlet中配置的后置相同 -->
<bean class="com.controller.UserController" name="/list.action"></bean>
<!-- 配置框架提供的视图解析器,通过配置前缀和后缀规则来解析,ModelAndView -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
Controller层
/**
* 基于注解的SpringMVC+Hibernate3.6的CRUD
* @author Saiteam
*
*/
@Controller
public class UserController { private UserDaoImpl userDao=new UserDaoImpl(); @RequestMapping(value="/list.action")
public String list(HttpServletRequest request){
List<User> user = userDao.list();
request.setAttribute("users", user);
return "list";
}
@RequestMapping(value="/saveForward.action")
public String saveForward(HttpServletRequest request){
return "add";
}
@RequestMapping(value="/add.action")
public String add(HttpServletRequest request) throws Exception{
request.setCharacterEncoding("UTF-8");
User user = new User();
user.setName(request.getParameter("name"));
user.setPassword(request.getParameter("password"));
user.setSex(request.getParameter("sex"));
user.setAddress(request.getParameter("address"));
user.setPhone(request.getParameter("phone"));
user.setEmail(request.getParameter("email"));
userDao.save(user);
request.setAttribute("users", userDao.list());
return "list";
} @RequestMapping(value="/delete.action")
public String delete(HttpServletRequest request){
int id = Integer.parseInt(request.getParameter("id"));
userDao.delete(id);
request.setAttribute("users", userDao.list());
return "list";
} @RequestMapping(value="/update.action")
public String update(HttpServletRequest request) throws Exception{
request.setCharacterEncoding("UTF-8");
User user = new User();
user.setId(Integer.parseInt(request.getParameter("id")));
user.setName(request.getParameter("name"));
user.setPassword(request.getParameter("password"));
user.setSex(request.getParameter("sex"));
user.setAddress(request.getParameter("address"));
user.setPhone(request.getParameter("phone"));
user.setEmail(request.getParameter("email"));
userDao.update(user);
request.setAttribute("users", userDao.list());
return "list";
} @RequestMapping(value="/get.action")
public String get(HttpServletRequest request){
int id = Integer.parseInt(request.getParameter("id"));
request.setAttribute("user", userDao.get(id));
return "update";
}
/**
* 登陆功能
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value="login.action")
public String login(HttpServletRequest request) throws Exception{
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String password = request.getParameter("password"); //测试
System.out.println("-------name-----------"+name);
System.out.println("-------password-----------"+password); if(name != null && !name.equals("")){
if(password != null && !password.equals("")){
User model = userDao.login(name, password);
//测试
System.out.println("-------------model--------"+model); if(model != null && !model.equals("")){
request.setAttribute("users", userDao.list());
return "list";
}else{
request.setAttribute("error", "用户或密码错误!");
return "forward:/login.jsp";
}
}else{
request.setAttribute("error", "密码不能为空!");
return "forward:/login.jsp";
}
}else{
request.setAttribute("error", "用户名不能为空!");
return "forward:/login.jsp";
} } //实现注册功能
@RequestMapping(value="register.action")
public String register(HttpServletRequest request) throws Exception{
request.setCharacterEncoding("UTF-8");
User user = new User();
user.setName(request.getParameter("name"));
user.setPassword(request.getParameter("password"));
user.setSex(request.getParameter("sex"));
user.setAddress(request.getParameter("address"));
user.setPhone(request.getParameter("phone"));
user.setEmail(request.getParameter("email"));
userDao.save(user);
return "forward:/index.jsp";
} /**
* 跳转到登陆页面
* @param request
* @return
*/
@RequestMapping(value="loginForward.action")
public String loginForwad(HttpServletRequest request){
return "forward:/login.jsp";
}
/**
* 转发到注册页面
* @param request
* @return
*/
@RequestMapping(value="rgf.action")
public String registerForwad(HttpServletRequest request){
return "forward:/register.jsp";
} }
service层
public class UserDaoImpl implements UserDao {
public void save(User user) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.getTransaction();
try {
tx.begin();
session.save(user);
tx.commit();
} catch (HibernateException e) {
if (tx != null) { // 如果存在事务,则回滚
tx.rollback();
}
throw e; // 抛出异常
} finally {
if (session != null) // 如果session存在,则关闭
session.close();
}
}
public void delete(int id) {
Session session = HibernateSessionFactory.getSession();
String hql = "DELETE User u WHERE u.id=:id";
session.createQuery(hql).setInteger("id", id).executeUpdate();
}
public void update(User user){
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.getTransaction();
try {
tx.begin();
session.update(user);
tx.commit();
} catch (HibernateException e) {
if (tx != null) { // 如果存在事务,则回滚
tx.rollback();
}
throw e; // 抛出异常
} finally {
if (session != null) // 如果session存在,则关闭
session.close();
}
}
public User get(int id) {
Session session = HibernateSessionFactory.getSession();
try {
User user = (User) session.get(User.class, id);
return user;
} finally {
if (session != null) {
session.close();
}
}
}
public List<User> list(){
Session session = HibernateSessionFactory.getSession();
String hql = "FROM User";
return session.createQuery(hql).list();
}
//登陆功能
public User login(String name,String password){
Session session = HibernateSessionFactory.getSession();
String hql = "FROM User u WHERE u.name=:name AND u.password=:password";
return (User) session.createQuery(hql).setString("name", name).setString("password", password).uniqueResult();
}
}
jsp页面自己写
springmvc环境的搭建的更多相关文章
- spring入门(五)【springMVC环境搭建】
springMVC作为spring的一个WEB组件,是一个MVC的思想,减少了WEB开发的难度,现介绍springMVC环境的搭建,具体的原理放在后面介绍.用过框架的朋友都知道要在WEB项目中使用一个 ...
- SpringMvc环境搭建(配置文件)
在上面的随笔里已经把搭建springmvc环境的基本需要的包都下下来了,拉下来就是写配置文件了. 下面左图是总的结构,右图是增加包 一.最开始当然是web.xml文件了,这是一个总的宏观配置 < ...
- SpringMVC环境搭建和详解
1.Spring容器和SpringMVC容器是父子容器 1.1 SpringMVC容器可以调用Spring容器中的所有内容 1.2 图示 2.SpringMVC环境搭建 1.导入jar包 2.在web ...
- springmvc环境搭建及实例
一. 软件环境 eclipse-jee-mars-R-win32-x86_64 jdk1.7.0_79 apache-tomcat-7.0.52 spring-framework-3.2.0.RELE ...
- SpringMVC 环境搭建
SpringMVC 框架环境搭建操作步骤如下: 创建动态 Web 项目 配置 Tomcat 服务器 配置 SpringMVC 前端控制器 <?xml version="1.0" ...
- Springmvc+Spring+Hibernate搭建方法
Springmvc+Spring+Hibernate搭建方法及example 前面两篇文章,分别介绍了Springmvc和Spring的搭建方法,本文再搭建hibernate,并建立SSH最基本的代码 ...
- SSM框架——Spring+SpringMVC+Mybatis的搭建
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- CentOS7 + mono +Jexus 环境的搭建
CentOS7的安装和配置 1,从http://www.centos.org/下载CentOS7的镜像,并在VMWare中创建该镜像的虚拟机,为方便操作,把虚拟机的网络连接设置为桥接模式:在安装过程中 ...
随机推荐
- js----对象的创建
js创建对象的三种方法 在介绍之前一定要弄清楚一个概念,比如var a = new Object(); 这里的a并不是一个对象,而是一个对象的实例. 一.用Json创造 var a = {b:1,c: ...
- php 读取文件头判断文件类型的实现代码
php代码实现读取文件头判断文件类型,支持图片.rar.exe等后缀. 例子: <?php $filename = "11.jpg"; //为图片的路径可以用d:/uploa ...
- 两个Activity之间的交互startActivityForResult的使用
代码如下: package com.zzw.teststartintentforrequest; import android.app.Activity; import android.content ...
- jquery实现ajax,返回json数据
jquery实现ajax可以调用几种方法 我经常用的是$get(url,data,callback,type)方法 其中url是异步请求的页面(可以是.ashx文件),data是参数,callback ...
- [转]Linux中find常见用法示例
Linux中find常见用法示例[转]·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参 ...
- MVVM学习
1:MVVMLight中通过IOC注册的服务或者是类是全局的整个工程都能访问到 2:向下的结构(viem→VM→Model)也不严格是这样 3:延迟SimpleIoc的注册 4:在Navigatedt ...
- awk中文手册
1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l awk 适于解决哪些问题 ? l awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模 ...
- Java 包(package)详解
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包也采用了树形目录的存储方式.同一 ...
- <亲测好使>mac os 安装mcrypt扩展
以前安装opencart的时候倒是不需要mcrypt 这个库.但是新版本需要了.加上自己的 是mac环境.当时闲麻烦,就一直没装.这次下午就寻思给装上吧! 1.首先你要先安装xcode这个工具.不然没 ...
- WPF TextBox 的 EventTrigger & 重写控件
遇到一个需求,在textbox获得焦点的时候,调用一个外部的软键盘. 这可以用两个不同的方法来达到目的. 1.EventTrigger 首先定义一个Style <Style x:Key=&quo ...