- 浏览: 197420 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xueruipp:
应该还能用吧
坦克大战用到的图片素材 -
泽在1993:
...
坦克大战用到的图片素材 -
AzraelWarrior:
...
坦克大战用到的图片素材 -
edison87915:
...
Java OCR 图像智能字符识别技术,可识别中文 -
innger:
为了避免如此我们应该用如下格式:
什么格式啊?
能不能在页 ...
Spring mvc3自己手动写国际化
用Spring MVC实现用户登录的完整实例 本例子是再Eclipse中建立一个Tomcat工程,来讲解Spring MVC 的全过程,实例代码如下:
<一>编写日记文件放在myMVC/WEB-INF/src下
#指定日志输入文件的大小
log4j.appender.stdout.MaxFileSize=500KB
log4j.appender.stdout.MaxBackupIndex=50
log4j.appender.stdout.Append=true
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p]%d{yyyy-MM-ddHH:mm:ss}%c-%m%n
#定义log4j的显示方式
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#指定日志输入文件的名称
log4j.appender.A1.File=org.log
#指定日志输入文件的大小
log4j.appender.A1.MaxFileSize=500KB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.Append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601}-[%P][%C{1}]-%m%n
#定义log4j的显示方式
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#指定日志输入文件的名称
log4j.appender.A1.File=gc.log
#指定日志输入文件的大小
log4j.appender.gc.MaxFileSize=500KB
log4j.appender.gc.MaxBackupIndex=50
log4j.appender.gc.Append=true
log4j.appender.gc.layout=org.apache.log4j.PatternLayout
log4j.appender.gc.layout.ConversionPattern=%d{ISO8601}-[%P][%C{1}]-%m%n
<二>配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<三>编写登录页面myMVC/gc/jsp目录下login.jsp
<%@taglib prefix="spring" uri="/spring"%>
<%@ page contentType="text/html;charset=GBK"%>
<html>
<head><title><spring:message code="title"/></title></head>
<body>
<form action="/myMVC/login.do" name="User" method="post">
<spring:bind path="command.username">
<spring:message code="username"></spring:message>
<input type="text" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<spring:bind path="command.password">
<spring:message code="password"></spring:message>
<input type="password" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<spring:bind path="command.password2">
<spring:message code="password2"></spring:message>
<input type="password" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<input type="submit" value="<spring:messagecode='submit'/>"/>
</form>
</body>
</html>
<四>编写显示成功的页面myMVC/gc/jsp目录下success.jsp
<%@taglib prefix="spring" uri="/spring"%>
<%@page contentType="text/html;charset=GBK"%>
<html>
<head><title><spring:message code="title"></spring:message></title></head>
<body>
<spring:bind path="command.username">
<h3><spring:message code="welcome"></spring:message>{status.value }<spring:message code="loginSuccess"/></h3><br>
</spring:bind>
</body>
</html>
<五>编写存放用户登录信息的Bean,在com.gc.action包中建立Java文件User.java
package com.gc.action;
publicclass User {
private String username=null;
private String password=null;
private String password2=null;
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
public String getPassword2() {
returnpassword2;
}
publicvoid setPassword2(String password2) {
this.password2 = password2;
}
public String getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
}
<六>在com.gc.action包下编写用户验证类UserValidator.java
package com.gc.action;
import com.gc.action.User;
import org.springframework.validation.Validator;
import org.springframework.validation.Errors;
publicclass UserValidator implements Validator {
publicboolean supports(Class clazz){
return clazz.equals(User.class);
}
publicvoid validate(Object obj,Errors errors){
User user=(User)obj;
if(!"tang".equals(user.getUsername())){
errors.rejectValue("username", "usernameerror", null, "用户名不正确");
}
if(!"123456".equals(user.getPassword())){
errors.rejectValue("password", "passworderror", null, "密码不正确");
}
if(!user.getPassword().equals(user.getPassword2())){
errors.rejectValue("password2", "password2error", null, "2次输入密码不一致");
}
}
}
<七>在com.gc.action包下编写用户登录逻辑Login.java
package com.gc.action;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
publicclass Login extends SimpleFormController{
private Logger logger=Logger.getLogger(this.getClass().getName());
public ModelAndView onSubmit(Object command,BindException errors)throws Exception{
User user=(User)command;
Map modle=errors.getModel();
modle.put("user", user);
returnnew ModelAndView(getSuccessView(),modle);
}
}
<八>myMVC/WEB-INF目录下编写配置文件dispatcherServlet-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http:www.springframework.org/dtd/spring-bean.dtd">
<beans>
<!-- 定义国际化消息 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
<!-- 定义映射 -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mapping">
<props>
<prop key="login.do">login</prop>
</props>
</property>
</bean>
<!-- 定义视图及路径 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
<!-- JSP都放在WEB-INF/jsp目录下 -->
<property name="prefix">
<value>/WEB-INF/jsp</value>
</property>
<!-- JSP页面的后缀都四.JSP -->
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- 定义控制器 -->
<bean id="login" class="com.gc.action.Login">
<property name="commandClass">
<value>com.gc.action.User</value>
</property>
<!-- 指定验证类 -->
<property name="validator">
<ref bean="userValidator"/>
</property>
<!-- 指定失败要返回的页面 -->
<property name="formView">
<value>login</value>
</property>
<property name="successView">
<value>success</value>
</property>
</bean>
<!-- 定义验证类 -->
<bean id="userValidator" class="com.gc.action.UserValidator"></bean>
</beans>
<九>myMVC/WEB-INF/src目录下编写资源文件messages.properties及messages_en_US.properties
messages.properties
title=SpringMVC实例
username=输入用户名:
password=输入密码:
password2=确认密码:
submit=提交
welcome=欢迎
loginSuccess=登录成功
usernameerror=用户名不正确
passworderror=密码不正确
doublepassword=2次密码不一致
native2ascii工具转码后
title=SpringMVC\u5b9e\u4f8b
username=\u8f93\u5165\u7528\u6237\u540d:
password=\u8f93\u5165\u5bc6\u7801:
password2=\u786e\u8ba4\u5bc6\u7801:
submit=\u63d0\u4ea4
welcome=\u6b22\u8fce
loginSuccess=\u767b\u5f55\u6210\u529f
usernameerror=\u7528\u6237\u540d\u4e0d\u6b63\u786e
passworderror=\u5bc6\u7801\u4e0d\u6b63\u786e
doublepassword=2\u6b21\u5bc6\u7801\u4e0d\u4e00\u81f4
messages_en_US.properties
title=SpringMVC
username=username
password=password
password2=password2
submit=submit
welcome=welcome
loginSuccess=loginSuccess
usernameerror=usernameerror
passworderror=passworderror
doublepassword=doublepassworderror
转自网络
<一>编写日记文件放在myMVC/WEB-INF/src下
#指定日志输入文件的大小
log4j.appender.stdout.MaxFileSize=500KB
log4j.appender.stdout.MaxBackupIndex=50
log4j.appender.stdout.Append=true
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p]%d{yyyy-MM-ddHH:mm:ss}%c-%m%n
#定义log4j的显示方式
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#指定日志输入文件的名称
log4j.appender.A1.File=org.log
#指定日志输入文件的大小
log4j.appender.A1.MaxFileSize=500KB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.Append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601}-[%P][%C{1}]-%m%n
#定义log4j的显示方式
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#指定日志输入文件的名称
log4j.appender.A1.File=gc.log
#指定日志输入文件的大小
log4j.appender.gc.MaxFileSize=500KB
log4j.appender.gc.MaxBackupIndex=50
log4j.appender.gc.Append=true
log4j.appender.gc.layout=org.apache.log4j.PatternLayout
log4j.appender.gc.layout.ConversionPattern=%d{ISO8601}-[%P][%C{1}]-%m%n
<二>配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<三>编写登录页面myMVC/gc/jsp目录下login.jsp
<%@taglib prefix="spring" uri="/spring"%>
<%@ page contentType="text/html;charset=GBK"%>
<html>
<head><title><spring:message code="title"/></title></head>
<body>
<form action="/myMVC/login.do" name="User" method="post">
<spring:bind path="command.username">
<spring:message code="username"></spring:message>
<input type="text" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<spring:bind path="command.password">
<spring:message code="password"></spring:message>
<input type="password" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<spring:bind path="command.password2">
<spring:message code="password2"></spring:message>
<input type="password" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<input type="submit" value="<spring:messagecode='submit'/>"/>
</form>
</body>
</html>
<四>编写显示成功的页面myMVC/gc/jsp目录下success.jsp
<%@taglib prefix="spring" uri="/spring"%>
<%@page contentType="text/html;charset=GBK"%>
<html>
<head><title><spring:message code="title"></spring:message></title></head>
<body>
<spring:bind path="command.username">
<h3><spring:message code="welcome"></spring:message>{status.value }<spring:message code="loginSuccess"/></h3><br>
</spring:bind>
</body>
</html>
<五>编写存放用户登录信息的Bean,在com.gc.action包中建立Java文件User.java
package com.gc.action;
publicclass User {
private String username=null;
private String password=null;
private String password2=null;
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
public String getPassword2() {
returnpassword2;
}
publicvoid setPassword2(String password2) {
this.password2 = password2;
}
public String getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
}
<六>在com.gc.action包下编写用户验证类UserValidator.java
package com.gc.action;
import com.gc.action.User;
import org.springframework.validation.Validator;
import org.springframework.validation.Errors;
publicclass UserValidator implements Validator {
publicboolean supports(Class clazz){
return clazz.equals(User.class);
}
publicvoid validate(Object obj,Errors errors){
User user=(User)obj;
if(!"tang".equals(user.getUsername())){
errors.rejectValue("username", "usernameerror", null, "用户名不正确");
}
if(!"123456".equals(user.getPassword())){
errors.rejectValue("password", "passworderror", null, "密码不正确");
}
if(!user.getPassword().equals(user.getPassword2())){
errors.rejectValue("password2", "password2error", null, "2次输入密码不一致");
}
}
}
<七>在com.gc.action包下编写用户登录逻辑Login.java
package com.gc.action;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
publicclass Login extends SimpleFormController{
private Logger logger=Logger.getLogger(this.getClass().getName());
public ModelAndView onSubmit(Object command,BindException errors)throws Exception{
User user=(User)command;
Map modle=errors.getModel();
modle.put("user", user);
returnnew ModelAndView(getSuccessView(),modle);
}
}
<八>myMVC/WEB-INF目录下编写配置文件dispatcherServlet-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http:www.springframework.org/dtd/spring-bean.dtd">
<beans>
<!-- 定义国际化消息 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
<!-- 定义映射 -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mapping">
<props>
<prop key="login.do">login</prop>
</props>
</property>
</bean>
<!-- 定义视图及路径 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
<!-- JSP都放在WEB-INF/jsp目录下 -->
<property name="prefix">
<value>/WEB-INF/jsp</value>
</property>
<!-- JSP页面的后缀都四.JSP -->
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- 定义控制器 -->
<bean id="login" class="com.gc.action.Login">
<property name="commandClass">
<value>com.gc.action.User</value>
</property>
<!-- 指定验证类 -->
<property name="validator">
<ref bean="userValidator"/>
</property>
<!-- 指定失败要返回的页面 -->
<property name="formView">
<value>login</value>
</property>
<property name="successView">
<value>success</value>
</property>
</bean>
<!-- 定义验证类 -->
<bean id="userValidator" class="com.gc.action.UserValidator"></bean>
</beans>
<九>myMVC/WEB-INF/src目录下编写资源文件messages.properties及messages_en_US.properties
messages.properties
title=SpringMVC实例
username=输入用户名:
password=输入密码:
password2=确认密码:
submit=提交
welcome=欢迎
loginSuccess=登录成功
usernameerror=用户名不正确
passworderror=密码不正确
doublepassword=2次密码不一致
native2ascii工具转码后
title=SpringMVC\u5b9e\u4f8b
username=\u8f93\u5165\u7528\u6237\u540d:
password=\u8f93\u5165\u5bc6\u7801:
password2=\u786e\u8ba4\u5bc6\u7801:
submit=\u63d0\u4ea4
welcome=\u6b22\u8fce
loginSuccess=\u767b\u5f55\u6210\u529f
usernameerror=\u7528\u6237\u540d\u4e0d\u6b63\u786e
passworderror=\u5bc6\u7801\u4e0d\u6b63\u786e
doublepassword=2\u6b21\u5bc6\u7801\u4e0d\u4e00\u81f4
messages_en_US.properties
title=SpringMVC
username=username
password=password
password2=password2
submit=submit
welcome=welcome
loginSuccess=loginSuccess
usernameerror=usernameerror
passworderror=passworderror
doublepassword=doublepassworderror
转自网络
<script type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
发表评论
-
Tomcat下面配置二级域名
2012-05-29 11:33 2515(1)开通二级域名支持,即house.map512.cn,pl ... -
java实现简单的单点登录
2012-04-09 14:13 930http://www.blogjava.net/xcp/arc ... -
web service 实例
2012-02-20 11:18 863http://wenku.baidu.com/view/fac ... -
iBATIS的多对多映射配置浅析
2011-12-28 16:58 920http://developer.51cto.com/art/ ... -
Spring security3 中文官方文档
2011-12-23 13:57 1040Spring security 3.0 官方翻译文档 -
Spring security 3.0 配置实例
2011-11-30 23:29 1055http://junjun16818.iteye.com/bl ... -
Spring mvc3自己手动写国际化
2011-09-01 00:46 2078Spring3 MVC 中:如果使用国际化的形式,如果采用如下 ... -
spring中的commands validator的使用方法
2011-08-28 23:51 1194spring 的validate验证需要两个bean( ... -
spring的MVC国际化的设置
2011-08-28 23:47 4765一、基于浏览器语言的国际化配置 使用Spring的MVC, ... -
Spring MVC 入门
2011-05-18 00:28 1183基于很多刚接触 spring 朋友,我想这篇文章也许会让 ... -
struts1.2和spring2.5.X的整合几种方式
2011-04-20 09:41 2044struts1.2和spring的整合几种方式 使用了str ... -
Hibernate缓存详解
2011-03-04 09:33 1034Hiberante3 一级缓存总结 1.Session 级别的 ... -
延迟加载
2011-02-21 13:59 870转自:http://clayz.iteye.com/blog/ ... -
常见切入点表达式的例子(aop execution 表达式 )
2011-02-19 16:12 3699任意公共方法的执行: execution(public ...
相关推荐
在这个"SpringMVC demo 完整源码实例下载"中,我们能够深入理解并学习SpringMVC的核心概念和实际应用。 首先,SpringMVC是Spring框架的一部分,它通过Model-View-Controller(MVC)设计模式来分离应用程序的业务...
这个名为"SpringMVC Demo_java_springmvc_DEMO_"的项目是一个演示示例,旨在展示如何在Java项目中集成和使用SpringMVC。通过这个项目,我们可以学习到以下关键知识点: 1. **环境配置**:首先,我们需要一个Java...
在这个"SpringMVC demo 完整源码实例下载.zip"压缩包中,我们可以深入学习和理解SpringMVC的各种核心特性和实际应用。 首先,SpringMVC通过DispatcherServlet作为前端控制器,它负责接收HTTP请求,并根据请求的URL...
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发...
在这个"SpringMVC demo"项目中,我们将探讨如何利用 Maven 和 SpringMVC 实现一个博客和用户管理系统。 **1. Maven 的作用与配置** Maven 是一个项目管理和综合工具,它通过统一的构建过程简化了项目的依赖管理。...
本示例项目 "demo_SpringMVC" 提供了一个基础的 Spring MVC 示例,旨在帮助开发者了解和学习如何使用该框架进行开发。 在 Spring MVC 中,`Model` 负责存储数据,`View` 负责渲染数据,而 `Controller` 则是处理...
【标题】"maven项目springMVC demo"是一个基于Java技术栈的Web应用程序示例,主要使用了Maven作为构建工具,SpringMVC作为控制器框架,以实现后端业务逻辑和视图的分离。该项目旨在展示如何在实际开发环境中整合这些...
这个"springMVC demo +jar包"资源包含了一个Spring MVC的小型示例项目和必要的jar包,帮助初学者理解和实践Spring MVC框架的使用。 首先,让我们详细了解一下Spring MVC的核心概念: 1. **DispatcherServlet**:这...
在"intellij maven springmvc demo"项目中,我们将探讨如何在IntelliJ IDEA这个强大的Java IDE中,利用Maven和SpringMVC进行项目配置和开发。 **1. 创建SpringMVC项目** 首先,我们需要在IntelliJ IDEA中创建一个...
1、本项目适合学习springmvc学者(springmvc demo), url(http://localhost:8082/com.demo.weixin/HelloWorld/index.html) 2、本项目适合学习微信开发 (微信接入,上传及下载临时素材文件,微信jssdk图片...
【标题】"demo.rar_DEMO_ShoppingCarPriKey_springmvc_springmvc demo" 提供的信息表明这是一个关于Spring MVC框架的示例项目,其中可能包含了购物车私钥(ShoppingCarPriKey)的功能,并且可能使用了Spring和...
通过深入研究这个SpringMVC demo,你可以学习到如何构建一个完整的Web应用,理解各组件之间的协作机制,这对于提升SpringMVC的使用技巧和解决实际问题具有极大的帮助。同时,这也是一个很好的实践项目,有助于巩固...
这篇博客"restful webservice in springMVC Demo"旨在展示如何在Spring MVC中创建RESTful Web服务,并通过客户端进行调用。 首先,我们要理解REST(Representational State Transfer,表述性状态转移)的基本概念。...
本项目 "springMvc demo" 是一个基础的 Spring MVC 应用示例,旨在帮助初学者了解如何配置和使用该框架。 首先,我们来探讨一下核心组件: 1. **web.xml**:这是部署描述符,定义了应用的入口点,以及Servlet和...
在本项目"SpringMvc Demo (maven)"中,开发人员使用了Maven作为构建工具,Eclipse作为IDE,Tomcat 9作为应用服务器,以及JDK 1.8作为Java运行环境。这个小Demo实现了基本的用户登录功能以及数据操作的增删改查功能,...
标题"Mina+SpringMVC Demo"揭示了一个集成项目,它结合了Apache Mina与Spring MVC框架,用于构建网络通信和Web应用。Apache Mina是一个高度可扩展的网络通信框架,适用于TCP/IP和UDP/IP协议,而Spring MVC是Spring...
在本示例中,"springmvc demo 可运行" 提供了一个基础的 Spring MVC 项目,可以帮助开发者快速理解和上手该框架。 首先,我们来看看 Spring MVC 的基本架构: 1. **DispatcherServlet**:这是 Spring MVC 的核心...