springMVC环境搭建(1)
工作一年以来,写的都是.net,最近比较闲,想把之前学过的java相关的东西捡起来,也学点新的东西。以前做过SSH架构,一直好奇spring mvc是怎么样的,所以今天试试看。
总体的代码结构
手动输入地址:http://localhost:8080/SpringMVC01/Login/getLoginPage,运行结果如下
登陆进去后为:
下面是编码过程。
第一步 新建一个Dynamic Web Project,名称为:SpringMVC01
修改WEB-INF下面的web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>SpringMVC01</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
注意:
(1)servlet-name为springmvc下,配置的url-servlet值为:/。这样配置后,需要在springmvc-servelt.xml,进行特殊配置,不然js,css等静态文件都访问不到。
(2)注意param-name为contextConfigLocation,配置的param-value值为:springmvc-servlet.xml跟后面新建的文件名要一样,不然tomcat启动会报文件找不到错误。
在WEB-INFO下新建一个文件:springmvc-servlet.xml,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <mvc:annotation-driven />
<context:component-scan base-package="com.amy.controller"></context:component-scan>
<mvc:resources mapping="/js/**" location="/resources/js/"></mvc:resources>
<mvc:resources mapping="/jslib/**" location="/resources/jslib/"></mvc:resources>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
注意:
(1)mvc:resources 要进行配置,这样静态的js,css文件才可以访问得到。
(2)prefix配置的值为/WEB-INFO/jsp/。
第二步 写Controller部分
package com.amy.controller; import java.util.HashMap;
import java.util.Map; import org.apache.catalina.connector.Request;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class LoginController { /**
* 这个请求返回JSP
*
* @param model
* @return
*/
@RequestMapping(value = "/Login/getLoginPage", method = RequestMethod.GET)
public String getLoginPage(ModelMap model) {
model.addAttribute("message", "Login Spring MVC Framework!");
return "login/login";
} /**
* 这个请求返回JSON数据
*
* @return
*/
@RequestMapping(value = "/user", produces = "application/json")
@ResponseBody
public Map<String, Object> GetUserInfoJson() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("uid", "950073");
map.put("pwd", "123456");
return map;
} @RequestMapping(value = "/Login/doLogin", method = RequestMethod.POST)
public String doLogin(String userName, String userPwd, ModelMap model) {
if (userName.equals("amy") && userPwd.equals("111111")) {
model.addAttribute("userName", userName);
return "home/HelloWorld";
} else {
model.addAttribute("tips", "您输入的用户名或密码有误");
return "login/login";
}
}
}
以进入登录界面为例子。浏览器输入地址:http://localhost:8080/SpringMVC01/Login/getLoginPage,进入到方法:getLoginPage中,去找地址:login/login。由于springmvc-serlvet.xml中配置了prefix:/WEB-INFO/jsp。因此实际上是访问到
/WEB-INFO/jsp/login/login.jsp。
依赖jar包如下,实际上我不知道要用到哪些,于是我把它们都加进来了。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aspects-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aspects-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aspects-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-support-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-support-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-support-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-expression-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-expression-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-expression-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-tomcat-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-tomcat-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-tomcat-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-messaging-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-messaging-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-messaging-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-oxm-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-oxm-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-oxm-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-test-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-test-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-test-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tx-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tx-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tx-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-portlet-4.1.2.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-portlet-4.1.2.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-portlet-4.1.2.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils-1.7.0.jar"/><!-- 这个部分是日志部分,如果不加的话,tomcat启动就会报错 -->
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections-3.2.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-httpclient-3.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang-2.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ezmorph-1.0.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/json-lib-2.2.3-jdk15.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jstl.jar"/> <!-- 这部分是一个标签库,新建一个j2EE1.4的java web项目会自动生成,后面用得到 -->
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/standard.jar"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
第三步 页面部分
Login.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%> <!-- 引入c标签,加载js等静态文件 -->
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript"
src="<c:url value='/jslib/jquery-1.7.2.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/login.js'/>"></script>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<h2>${message}</h2>
<form action="Login/doLogin" method="post">
<table>
<tr>
<th></th>
<th><input type="hidden" value="12121212" /></th>
</tr>
<tr>
<td></td>
<td><span style="color:red;">${tips}</span></td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" value="${userName }" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="userPwd" value="${userPwd }" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="登陆" /> <input
type="button" value="重置" onclick="clearLoginInfo();" /></td>
</tr>
</table>
</form>
</body>
</html>
js静态文件地址如下。
对应的login.js
/**
* 登陆页面
*/ // 重置登陆信息
function clearLoginInfo() {
$("input[type='text']").val("");
$("input[type='password']").val("");
$("input[type='hidden']").val("");
}
总结
以上东西,都是我百度或者google到的示例写出来的,我看了一下spring的文档,全是英文的,看起来还是有点吃力,感觉还有很多不知道的。不过就上面的东西应该可以解决大部分的问题。不过可能不是最优的。
springMVC环境搭建(1)的更多相关文章
- 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环境搭建以及常见问题解决
1.新建maven工程 a) 打开eclipse,file->new->project->Maven->Maven Project b) 下一步 c) 选择创建的工程为 ...
- spring入门(五)【springMVC环境搭建】
springMVC作为spring的一个WEB组件,是一个MVC的思想,减少了WEB开发的难度,现介绍springMVC环境的搭建,具体的原理放在后面介绍.用过框架的朋友都知道要在WEB项目中使用一个 ...
- SpringMvc环境搭建(配置文件)
在上面的随笔里已经把搭建springmvc环境的基本需要的包都下下来了,拉下来就是写配置文件了. 下面左图是总的结构,右图是增加包 一.最开始当然是web.xml文件了,这是一个总的宏观配置 < ...
- SpringMVC 环境搭建
SpringMVC 框架环境搭建操作步骤如下: 创建动态 Web 项目 配置 Tomcat 服务器 配置 SpringMVC 前端控制器 <?xml version="1.0" ...
- SpringMVC环境搭建
Spring MVC为展现层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一. Spring 3.0之后完全超越Struts2,称为最优秀的MVC框架.学完SpringMVC之后 ...
- SpringMVC环境搭建---xml版及注解版
一.建立 JavaWeb 项目(基于Intellij 14.0.3搭建) 1.建立一个 Java 项目,在项目下新建一个文件夹 webapp ,然后在该文件夹下新建一个 WEB-INF 文件夹: 2. ...
- SpringMVC 环境搭建(HelloWorld)
SpringMVC 入门案例 环境 * springMVC * web 构建文件目录结构 修改dispatcher-servlet.xml文件 修改web.xml
- SpringMVC环境搭建——HelloWorld
1.新建Maven Web 工程: 2.添加相关的依赖包(Spring MVC.tomcat插件等),具体的pom.xml文件如下 <project xmlns="http://mav ...
随机推荐
- 重温CLR(十三) 定制特性
利用定制特性,可宣告式为自己的代码构造添加注解来实现特殊功能.定制特性允许为几乎每一个元数据表记录项定义和应用信息.这种可扩展的元数据信息能在运行时查询,从而动态改变代码的执行方式.使用各种.NET技 ...
- Windows下Redis的使用
Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括st ...
- nginx 缓存处理
核心指令 proxy_cache_path /data/nginx/cache/one levels=1:2 keys_zone=one:10m max_size=10g; proxy_cache ...
- 连电子硬件行业都在开始使用 Git 了你还在等什么?
连电子硬件行业都在开始使用 Git 了你还在等什么? 无论二进制还是文本 Git 都可以管理. 相对于电子行业传统的复制粘贴式的版本管理, git 的版本管理先进太多太多了,没有理由不用. 虽然做不到 ...
- gitlab安装、配置与阿里云产品集成
https://www.ilanni.com/?p=12819 一.gitlab安装与部署 gitlab的安装可以分为源码安装和通过安装包进行安装,要是按照我以前的写作习惯的话,我也会把源码安装在本文 ...
- kubernetes简单示例
1. 安装 yum install -y etcd kubernetes 2. 启动 systemctl start etcd systemctl start docker systemctl sta ...
- java指定文件编码格式
在创建文件并打印字符串时,如果不指定编码,默认是按系统的编码格式来.比如我们的linux环境中编码如下: CMREAD-SV43 /home/wlf> locale LANG=en_US.UTF ...
- sql语句查询重复数据
select id, name, memofrom Awhere id in (select id from A group by id having count(1) >= 2)
- String.Format数字格式化输出 {0:N2} {0:D2} {0:C2} (转)
String.Format数字格式化输出 {:N2} {:D2} {:C2} (转) //格式为sring输出 // Label1.Text = string.Format("asdfads ...
- linux下thinkphp取消调试模式后找不到网页解决方案
1.最大嫌疑是Runtime目录权限不足,导致common~runtime.php文件无法生成, 解决:1.整个Runtime目录删除,让系统重新生成; 2.给Runtime及以下的所有文件足够权限0 ...