Java学习笔记之:Spring MVC 环境搭建
一、创建项目
1.新建java动态项目
2.在web-inf/lib文件夹下导入jar
3.创建所需要的包和文件
二、搭建SpringMVC
1.配置web.xml(WEB-INF下)
- <?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-spring-ibatis</display-name>
- <!-- springmvc的配置 -->
- <servlet>
- <servlet-name>springDispatcherServlet</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <!-- 配置Spring mvc下的配置文件的位置和名称 -->
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:springmvc/sping.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springDispatcherServlet</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!-- 配置字符集乱码 -->
- <filter>
- <description>字符集过滤</description>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <description>字符集编码</description>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!-- spring的配置 -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring/spring_*.xml</param-value>
- </context-param>
- </web-app>
2.在springmvc包里创建“spring,xml”并配置springmvc的配置文件
- <?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:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
- <!-- 配置自动扫描的包 -->
- <context:component-scan base-package="com.mxp.controller"></context:component-scan>
- <!-- 加载静态资源 -->
- <mvc:annotation-driven></mvc:annotation-driven>
- <mvc:default-servlet-handler />
- <!-- 配置视图解析器 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </beans>
3.在controller包里创建"UserController.ava"
- package com.hgd.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- /**
- * 控制层:com.hgd.action || com.hgd.controller
- * 服务层:com.hgd.service (将接口和实现类分开com.hgd.service.imp)
- * 持久层:com.hgd.dao (com.hgd.dao.imp) || com.hgd.mapper
- * 视图层:jsp...
- *
- */
- @Controller("userController")
- @RequestMapping("/userController")
- public class UserController {
- @RequestMapping("login")
- public String login() throws Exception {
- System.out.println("login");
- return "main";
- }
- }
注意:1. 首先要在类的前面添加“Controller”注解,表示是spring的控制器,这里会写一个方法hello()
2. hello方法上方有一个@RequestMapping, 是用于匹配请求的路径,比如这里匹配的请求路径就是“http://localhost:8080/SpingMVC/userController/login”。
4.页面调试,在index.jsp加入超链接
- <a href="userController/login">login</a>
5.当我们点击超链接,控制台会输出“login”并且调到main.jsp
6.如果我们需要传入参数可以在方法中加入参数,并在超链接中写出
- @RequestMapping("login")
- public String login(String user,int age)throws Exception{
- System.out.println("login");
- System.out.println(user+"\t"+age);
- return "main";
- }
- <a href="userController/login?user=admin&age=20">login</a>
返回结果:
三、传入obj类型参数
1.在model包中创建javabean
- package com.hgd.model;
- public class User {
- private String name;
- private int age;
- public User() {
- // TODO Auto-generated constructor stub
- }
- public User(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "User [name=" + name + ", age=" + age + "]";
- }
- }
2.在usercontroller中写上方法
- @RequestMapping("obj")
- public String obj(User user,HttpServletRequest req)throws Exception{
- System.out.println("obj");
- System.out.println(user);
- req.setAttribute("msg", "request");
- return "main";
- }
3.测试方法
- <a href="userController/obj?name=admin&age=35">obj</a>
4.测试结果
四、传入ajax
1.WebContent下创建jquery文件夹,导入“jQuery文件”,在index.jsp加入js
- <script type="text/javascript">
- function ajax(){
- $.getJSON('userController/getString',{name:'admin'},function(data){
- alert(typeof data +"||"+data.msg);
- });
- }
2.在json包中创建json.java用来发送数据
- package com.hgd.json;
- public class Json {
- private String msg;
- public Json() {
- // TODO Auto-generated constructor stub
- }
- public void setMsg(String msg) {
- this.msg = msg;
- }
- public String getMsg() {
- return msg;
- }
- }
3.usercontroller中写上方法
- @RequestMapping("getString")
- @ResponseBody//@responsebody表示该方法的返回结果直接写入HTTP
- public Json getString(String name)throws Exception{
- System.out.println(name);
- Json j = new Json();
- j.setMsg("数据");
- return j;
- }
4.测试方法
- <a href="javascript:ajax()">ajax</a>
5.测试结果
五、传入 map
1.在js代码块中添加一个函数
- function map(){
- $.getJSON('userController/map',function(data){
- });
- }
2.usercontroller中写上方法
- @RequestMapping("map")
- @ResponseBody
- public Map<String, Object> map()throws Exception{
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("A", new User("admin-1",25));
- map.put("B", new User("admin-2",20));
- map.put("C", new User("admin-3",25));
- return map;
- }
3.测试方法
- <a href="javascript:map()">map</a>
4.测试结果,F12打开控制台,可以看到响应
六、传入list
1.在js代码块中添加一个函数
- function list(){
- $.getJSON('userController/list',function(data){
- alert(data.length)
- });
- }
2.usercontroller中写上方法
- @RequestMapping("list")
- @ResponseBody
- public Collection list()throws Exception{
- List<User> list = new ArrayList<User>();
- for (int i = 0; i < 5; i++) {
- list.add(new User("admin"+i, i));
- }
- return list;
- }
3.测试方法
- <a href="javascript:list()">list</a>
4.测试结果,打出list的长度。
Java学习笔记之:Spring MVC 环境搭建的更多相关文章
- Java学习笔记【一、环境搭建】
今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- Spring MVC 环境搭建(一)
一.建立 JavaWeb 项目 1.建立一个 Java 项目. 2.在项目下新建一个文件夹 webapp (命名可自取,这个目录即是网站根目录),再在该文件夹下新建一个 WEB-INF 文件夹(命名固 ...
- Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker)
Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker) 一.准备工作 1.Eclipse Java EE IDE(4.4.1) 2.JDK 3.Tomc ...
- Spring MVC 环境搭建(二)
在Spring MVC 环境搭建(一)中我们知道 spring 的配置是通过 urlmapping 映射到控制器,然后通过实现Controller接口的handlerequest方法转向页面. 但这存 ...
- ESP32学习笔记(一) 环境搭建与下载
ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- Cocos2d-x 3.2 学习笔记(一)环境搭建
目前项目无事,时间比较充裕,因此来学习下cocos2dx,当然本人也是新手一个, 写此笔记做备忘和脚步. 最近3.2版本更新出來了!官方说这是自2.x分支以来修复了超过450个bug,3.2版本是目前 ...
- 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】
Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...
随机推荐
- NCPC2016-E- Exponial
题目描述 Illustration of exponial(3) (not to scale), Picture by C.M. de Talleyrand-Périgord via Wikimedi ...
- bzoj千题计划171:bzoj2456: mode
http://www.lydsy.com/JudgeOnline/problem.php?id=2456 任意删除序列中两个不同的数,众数仍然是众数 不停的删,剩下的最后的数一定是众数 具体实现: 记 ...
- bzoj千题计划164:bzoj5123: 线段树的匹配
http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf dp[len][0/1] 表示节点表示区间长度为len,节点选/不选的 最大匹配 s ...
- bzoj千题计划151:bzoj1131: [POI2008]Sta
http://www.lydsy.com/JudgeOnline/problem.php?id=1131 dp[i]=dp[fa[i]]-son[i]+n-son[i] #include<cst ...
- 二分算法的应用——最大化平均值 POJ 2976 Dropping tests
最大化平均值 有n个物品的重量和价值分别wi 和 vi.从中选出 k 个物品使得 单位重量 的价值最大. 限制条件: <= k <= n <= ^ <= w_i <= v ...
- Django 2.0.1 官方文档翻译: 快速安装向导 (Page5)
快速安装向导 (Page 5) 在你使用 Django 前,你需要先安装它.我们有一个完整的安装向导,它包含所有涉及的内容,这个向导会指导你进行一个简单的.最小化的安装,当你通过浏览介绍内容的时候,这 ...
- 兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法
兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法 // 获取事件function getEvent(){ if(window.event) {return w ...
- Spring AOP注解为什么失效?90%Java程序员不知道
使用Spring Aop注解的时候,如@Transactional, @Cacheable等注解一般需要在类方法第一个入口的地方加,不然不会生效. 如下面几种场景 1.Controller直接调用Se ...
- 为FreeBSD安装adobe flash插件
参考 FreeBSD官方手册浏览器一章. pkg install nspluginwrapper nspluginwrapper 是一个辅助安装配置 NetScape Plugin的工具. 可以为Ne ...
- Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
问题: 当我们打开数据库,即use dbname时,要预读数据库信息,当使用-A参数时,就不预读数据库信息. 解决方法:mysql -hhostname -uusername -ppassword - ...