springMVC基础配置



1. jar包引入(包含mybatis的包,方便后面使用)
aopalliance.jar
aspectjrt.jar
aspectjweaver.jar
commons-dbcp2-2.1.1.jar
commons-logging-1.1.3.jar
commons-pool2-2.4.2.jar
jsqlparser-0.9.5.jarjstl.jar
log4j-1.2.17.jar
mybatis-3.4.1.jar
mybatis-spring-1.3.1.jar
mysql-connector-java-5.1.6-bin.jar
pagehelper-5.0.0-rc.jarservlet-api.jar
spring-aop-3.2.9.RELEASE.jar
spring-aspects-3.2.9.RELEASE.jar
spring-beans-3.2.9.RELEASE.jar
spring-context-3.2.9.RELEASE.jar
spring-context-support-3.2.9.RELEASE.jar
spring-core-3.2.9.RELEASE.jar
spring-expression-3.2.9.RELEASE.jar
spring-framework-bom-3.2.9.RELEASE.jar
spring-instrument-3.2.9.RELEASE.jar
spring-instrument-tomcat-3.2.9.RELEASE.jar
spring-jdbc-3.2.9.RELEASE.jar
spring-jms-3.2.9.RELEASE.jar
spring-orm-3.2.9.RELEASE.jar
spring-oxm-3.2.9.RELEASE.jar
spring-struts-3.2.9.RELEASE.jar
spring-test-3.2.9.RELEASE.jar
spring-tx-3.2.9.RELEASE.jar
spring-web-3.2.9.RELEASE.jar
spring-webmvc-3.2.9.RELEASE.jar
standard.jar

SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。

DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>SpringMVC</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>CharacterEncode</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springmvc</servlet-name>
<!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如springmvc-servlet.xml-->
<!-- 1.下面的servlet-mapping名称一致 2.新建一个springmvc-servlet.xml名称一致 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup><!-- 在启动web容器时启动Tomcat -->
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

 spring-servlet.xml配置

  spring-servlet这个名字是因为上面web.xml中<servlet-name>标签配的值为spring(<servlet-name>spring</servlet-name>),再加上“-servlet”后缀而形成的spring-servlet.xml文件名,如果改为springMVC,对应的文件名则为springMVC-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" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
        
        
    <!-- 设置使用注解的类所在的包 -->
<context:component-scan base-package="com.my" />

<!-- 完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />


    <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" /><!-- 访问的url地址的前缀 -->
<property name="suffix" value=".jsp"></property><!-- 访问的url地址的后缀 -->
</bean>

</beans>

DispatcherServlet会利用一些特殊的bean来处理Request请求和生成相应的视图返回。
关于视图的返回,Controller只负责传回来一个值,然后到底返回的是什么视图,是由视图解析器控制的,在jsp中常用的视图解析器是InternalResourceViewResovler,它会要求一个前缀和一个后缀
在上述视图解析器中,如果Controller返回的是/users,那么通过视图解析器解析之后的视图就是/WEB-INF/jsp/users.jsp。

主要是Controller.
package com.my.controller;


import java.util.ArrayList;
import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


import com.my.bean.User;
import com.my.biz.UserBiz;


@Controller
//@RequestMapping("/user")可以带后面的名称也可以不要,
//带了名字的,url地址访问时http://localhost:8080/SpringMVC/user/users
//不带名字的,url地址访问时http://localhost:8080/SpringMVC/users
@RequestMapping
public class UserController {
private UserBiz userBiz;
private List<User> users=new ArrayList<User>();


//使用构造方法来进行注入
//在进入list查找页面是就进行初始化
public UserController(){}
@Autowired
public UserController(UserBiz userBiz){
this.userBiz = userBiz;
users = this.userBiz.list();
}

@RequestMapping(value="/users",method=RequestMethod.GET)
public String list(Model model) {
model.addAttribute("users", users);
return "/users";
}

@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(){
return "/add";
}

/*
* initBinder方法是对于页面需要从后台得值(页面需要输入值)
* 以及在需要的方法参数(参数为一个实体)注入@ModelAttribute("user")
* 页面可以直接得值,但最好使用user.这种形式。
* 如果不加这个方法页面返回值为null
*/
@InitBinder("user")
public void initBinder(WebDataBinder binder){
binder.setFieldDefaultPrefix("user.");
}

/*
* method=RequestMethod.POST默认为GET
* return "redirect:users";springMVC方法的返回值就是去WEB-INF下找的jsp路径
* redirect在添加提交以后重定向到users.jsp
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@ModelAttribute("user") User user){
users.add(user);
System.out.println(users.size());
return "redirect:users";
}

}

贴出我的两个简单jsp页面
add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
String path = request.getContextPath();
String basePath =request.getScheme() + "://"+request.getServerName() +":"+request.getServerPort() + path+"/";
%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath %>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="add" method="post">
注册名: <input type="text" name="user.username"/> <br/>
密码: <input type="password" name="user.password"/> <br/>
昵称: <input type="text" name="user.nickname"/> <br/>
类型: <input type="text" name="user.type"/> <br/>
<input type="submit" name="提交"/> <br/>
</form>
</body>
</html>


users.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
  <tr>
    <td>名称</td>
    <td>密码</td>
    <td>昵称</td>
    <td>类型</td>
  </tr>
  <c:forEach items="${users }" var="user">
     <tr>
    <td>${user.username }</td>
    <td>${user.password }</td>
    <td>${user.nickname }</td>
    <td>${user.type }</td>
  </tr>
  </c:forEach>
</table>
</body>
</html>


dao层以及biz层实现常规的查看和添加方法
打开浏览器输入http://localhost:8080/SpringMVC/users或者http://localhost:8080/SpringMVC/add查看代码结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值