Spring MVC使用总结
SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法
![SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法](https://img.taocdn.com/s3/m/7a9a5a26f011f18583d049649b6648d7c1c70865.png)
SpringMVC+Spring+Hibernate框架整合原理,作⽤及使⽤⽅法SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使⽤spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到DispacherServlet(分发器)2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller3.Controller调⽤业务逻辑处理后,返回ModelAndView4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图5.视图负责将结果显⽰到客户端Spring:我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们中的类,当然也包括service dao⾥⾯的),有了这个机制,我们就不⽤在每次使⽤这个类的时候为它初始化,很少看到关键字new。
另外spring的aop,事务管理等等都是我们经常⽤到的。
Mybatis:mybatis是对jdbc的封装,它让数据库底层操作变的透明。
mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。
mybatis通过配置⽂件关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。
在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。
使⽤⽅法:要完成⼀个功能:1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。
2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进⾏的那些操作,⽐如 insert、selectAll、selectByKey、delete、update等。
spring MVC原理及配置
![spring MVC原理及配置](https://img.taocdn.com/s3/m/93821ff418e8b8f67c1cfad6195f312b3169eb75.png)
spring MVC原理及配置springmvc原理及配置springmvc原理及配置1.springmvc详述:springmvc就是spring提供更多的一个强悍而有效率的web框架。
借助注释,springmvc提供更多了几乎就是pojo的研发模式,使控制器的研发和测试更加直观。
这些控制器通常不轻易处置命令,而是将其委托给spring上下文中的其他bean,通过spring的倚赖转化成功能,这些bean被转化成至控制器中。
springmvc主要由dispatcherservlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
他的两个核心是两个核心:处理器映射:选择使用哪个控制器来处理请求视图解析器:选择结果应该如何渲染通过以上两点,springmvc确保了如何挑选掌控处置命令和如何挑选视图展现出输入之间的松耦合。
2.springmvc运行原理这里写图片描述(2)找寻处理器:由dispatcherservlet控制器查阅一个或多个handlermapping,找出处置命令的controller。
(3)调用处理器:dispatcherservlet将请求提交到controller。
(4)(5)调用业务处置和回到结果:controller调用业务逻辑处置后,回到modelandview。
3.springmvc接口解释(1)dispatcherservlet接口:spring提供的前端控制器,所有的请求都有经过它来统一分发。
在dispatcherservlet将请求分发给springcontroller 之前,需要借助于spring提供的handlermapping定位到具体的controller。
(2)handlermappingUSB:能够完成客户请求到controller映射。
(3)controller接口:须要为mammalian用户处置上述命令,因此同时实现controllerUSB时,必须确保线程安全并且可以器重。
SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门
![SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门](https://img.taocdn.com/s3/m/1b8ad6d3a48da0116c175f0e7cd184254b351bff.png)
SpringMVC源码总结(⼀)HandlerMapping和HandlerAdapter⼊门刚接触SpringMVC,对它的xml⽂件配置⼀直⽐较模模糊糊,最近花了⼀点时间稍微看了下源代码,再加上调试,开始逐渐理解它,⽹上的类似的内容有很多,写本⽂主要是⾃⼰加深⼀下理解。
本⽂适合⽤过SpringMVC的开发者,⾔归正传,⾸先搭建⼀个最简单的⼯程体验⼀下。
该⼯程是基于maven的,pom配置不再说明,所使⽤的spring版本4.0.5。
⾸先是web.xml⽂件配置,最简单的配置Java代码1. <!DOCTYPE web-app PUBLIC2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"3. "/dtd/web-app_2_3.dtd" >4.5. <web-app>6. <display-name>Archetype Created Web Application</display-name>7. <servlet>8. <servlet-name>mvc</servlet-name>9. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>10. <load-on-startup>1</load-on-startup>11. </servlet>12.13. <servlet-mapping>14. <servlet-name>mvc</servlet-name>15. <url-pattern>/*</url-pattern>16. </servlet-mapping>17. </web-app>然后是mvc-servlet.xml⽂件的配置,上⾯配置DispatcherServlet会默认加载[servlet-name]-servlet.xml⽂件。
使用SpringMVC@Async异步执行方法的笔记(转载)
![使用SpringMVC@Async异步执行方法的笔记(转载)](https://img.taocdn.com/s3/m/4aa7ca73cbaedd3383c4bb4cf7ec4afe04a1b162.png)
使⽤SpringMVC@Async异步执⾏⽅法的笔记(转载)代码:@RunWith(SpringJUnit4ClassRunner.class)</p>@ContextConfiguration(locations = { "/spring/*.xml" })public class JobUtilsTest{@Autowiredprivate DaoService service;@Testpublic void testAsync() throws Exception {System.out.println("start" );service.update(); // ★假设这个⽅法会⽐较耗时,需要异步执⾏System.out.println("end");Thread.sleep(3000); // 因为junit结束会结束jvm,所以让它等会异步线程}}DaoService代码:@Servicepublic class DaoService {@Asyncpublic void update() {try {Thread.sleep(2000);// do something} catch (InterruptedException e) {e.printStackTrace();}System.out.println("operation complete.");}}applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc" xmlns:task="/schema/task"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context-3.0.xsd/schema/task /schema/task/spring-task-3.0.xsd"><context:component-scan base-package="com.chinacache"/><!-- <task:annotation-driven /> --><task:annotation-driven executor="myexecutor"/><task:executor id="myexecutor" pool-size="50"/></beans>。
spring知识点总结
![spring知识点总结](https://img.taocdn.com/s3/m/5885032749d7c1c708a1284ac850ad02df800773.png)
spring知识点总结Spring是一个开发应用程序的Java企业应用程序框架,它以依赖注入(DI)和面向切面(AOP)为基础,可以帮助开发者开发出模块化、可重用、可扩展、可测试的应用程序。
Spring可以用来构建Web应用程序、基于REST的服务、批处理应用程序以及各种不同类型的企业级应用程序。
下面是关于Spring的一些重要知识点总结:1. 控制反转(Inversion of Control,简称IoC):Spring的核心特性之一,通过IoC容器将对象的创建和依赖注入交给框架来管理,减少了代码的耦合度和管理对象的复杂性。
2. 依赖注入(Dependency Injection,简称DI):是IoC的一种实现方式,通过注解或配置文件将对象的依赖关系注入到对象中,使得对象在创建时不需要自己构造依赖的对象。
3. AOP(Aspect-Oriented Programming):面向切面编程,通过将横切关注点(如日志记录、安全性检查等)模块化,便于代码的维护和管理。
4. Spring MVC:用于构建Web应用程序的模块,提供了一种基于注解的方式来处理用户请求和生成响应,支持RESTful风格的开发。
5. 事务管理:Spring提供了对事务的支持,可以通过注解或配置文件的方式管理数据库事务,保证数据一致性和完整性。
6. 数据访问支持:Spring可以与各种数据访问技术(如JDBC、Hibernate、MyBatis等)无缝集成,简化了数据库操作的开发过程。
7. Spring Boot:Spring框架的一个子项目,用于简化Spring应用程序的配置和部署,提供了自动配置、嵌入式服务器等特性,使得开发者可以快速搭建一个可运行的Spring应用程序。
8. Spring Security:用于开发安全性强的应用程序,提供用户认证、授权、身份验证等功能。
9. Spring Cloud:基于Spring Boot开发的微服务框架,提供了服务发现、负载均衡、熔断器、配置管理等功能,帮助开发者构建分布式系统。
【麦子学院】Spring MVC处理XSS、SQL注入攻击的方法总结
![【麦子学院】Spring MVC处理XSS、SQL注入攻击的方法总结](https://img.taocdn.com/s3/m/b8e96f6dcaaedd3383c4d37a.png)
【麦子学院】Spring MVC处理XSS、SQL注入攻击的方法总结在Java开发项目中,Spring MVC通常容易受到XSS、SQL注入攻击,那么出现这种情况,我们通常的有以下几种解决方法:1、在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原;2、在显示的时候对非法字符进行转义;如果项目还处在起步阶段,建议使用第二种,直接使用jstl的标签即可解决非法字符的问题。
在解析从服务器端获取的数据时执行以下escapeHTML()即可。
附:Javascript方法:String.prototype.escapeHTML = function () {return this.replace(/&/g, ‘&’).replace(/>/g, ‘>’).replace(/}如果项目已经开发完成了,又不想大批量改动页面的话,可以采用第一种方法,此时需要借助Spring MVC的@InitBinder以及ng.PropertyEditorSupport、ng.StringEscapeUtils注:在使用StringEscapeUtils时需要注意escapeHtml和escapeJavascript方法会把中文字符转换成Unicode编码,如果通过标签或者EL表达式展示时,能够正确还原,但是如果使用类似于Ext这样的前端组件来展示这部分内容时,不能正常还原。
例:public class StringEscapeEditor extends PropertyEditorSupport {private boolean escapeHTML;private boolean escapeJavaScript;private boolean escapeSQL;public StringEscapeEditor() { super(); }public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {super();this.escapeHTML = escapeHTML;this.escapeJavaScript = escapeJavaScript;this.escapeSQL = escapeSQL;}@Overridepublic void setAsText(String text) {if (text == null) {setValue(null);} else {String value = text;if (escapeHTML) { value = StringEscapeUtils.escapeHtml(value); }if (escapeJavaScript) { value = StringEscapeUtils.escapeJavaScript(value); }if (escapeSQL) { value = StringEscapeUtils.escapeSql(value); }setValue(value); }}@Overridepublic String getAsText() { Object value = getValue(); return value != null ? value.toString() : “”; }}下面要将这个Editor和Spring的Controller绑定,使服务器端接收到数据之后能够自动转移特殊字符,在@Controller中注册@InitBinder@InitBinderpublic void initBinder(WebDataBinder binder) {binder.registerCustomEditor(String.class, new StringEscapeEditor(false, false, false));}以上就是Spring MVC处理XSS、SQL注入攻击的的最简单的方法,大家在web项目中遭到这两种攻击,不妨试试以上的破解方法。
java框架实训总结与体会
![java框架实训总结与体会](https://img.taocdn.com/s3/m/eb4d88672e60ddccda38376baf1ffc4ffe47e230.png)
java框架实训总结与体会
在进行Java框架实训后,我深刻体会到了框架的重要性和实际应用价值。
首先,通过实训我更加深入地理解了Spring、Spring MVC和MyBatis等框架的原理和使用方法。
这些框架为Java开发提供了丰富的工具和功能,能够大大提高开发效率和代码质量。
在实训中,我学会了如何使用Spring框架进行依赖注入和AOP编程,以及如何利用Spring MVC构建Web应用程序。
同时,通过MyBatis框架,我学会了如何简化数据库访问的过程,提高了数据持久层的开发效率。
其次,实训让我深刻认识到了框架的设计思想和模式对项目开发的重要性。
框架提倡的约定大于配置的理念,使得项目开发更加规范和高效。
同时,框架提供的模块化设计和可扩展性,使得项目具有更好的可维护性和可扩展性。
在实训中,我意识到了良好的框架设计能够极大地减少重复性工作,提高了代码的复用性和可维护性。
最后,通过实训我还深刻体会到了团队合作的重要性。
在实训过程中,我和同学们共同学习、讨论和解决问题,相互协作完成了项目任务。
这让我认识到了团队合作对于项目成功的关键性作用,
同时也提高了我的沟通和协作能力。
总的来说,Java框架实训让我受益匪浅,不仅提高了我的技术水平,也增强了我对团队合作和项目开发的认识。
我深信框架的应用将会在我的未来项目开发中发挥重要作用,提高项目的质量和效率。
spring、spring-mvc学习总结
![spring、spring-mvc学习总结](https://img.taocdn.com/s3/m/c998eea165ce0508763213f2.png)
Spring资料总结目录--------------------1.什么是spring2.Spring有什么特点?3.Spring的有哪些模块?各个模块的作用?4.控制反转(IOC)和依赖注入(DI)的区别?5.BeanFacotry对象的作用(IOC容器的作用)?6.使用FileSystemXmlApplicationContext,ClassPathXmlApplicationContext加载ApplicationContext.xml文件代码?7.BeanFactory跟ApplicationContext区别?8.依赖注入的四种方式(set,构造器,接口,注解)?9.Bean组件的作用域范围(singleton,prototype,request,session,globalsession)?10.Bean组件装配方式(byName,bType,constructor,default)?11.Bean组件的生命周期?12.在Web环境中怎么加载applicationContext.xml文件(Servlet监听器)?在web如何获取应用上下文WebApplicationContext?13.Spring对DAO模块支持?有什么优点?14.Spring的DAO模板增删查改数据代码?15.Spring对ORM模块的支持?有什么优点?16.Spring整合Hibernate模块的增删查改数据代码?17.Spring整合Ibatis模块的增删查改数据代码?18.Spring整合Mybatis模块的增删查改数据代码?19.Spring的全局事务(JTA)和局部事务(JDBC)的区别?20.Spring事务实现的方式有哪些,优缺点?21.编程式事务的特点?声明式事务的特点?22.事务7大传播属性?指定事务策略的格式代码?23.在Spring中事务管理器的实现方式有哪些?24.在Spring中事务管理器的实现方式有哪些?25.AOP的概念(切面,连接点,通知[顾问],切入点,[引入,关注点],目标对象,代理对象,织入目标)26.AOP在Spring中的作用?27.AOP中的通知有哪些?各有什么特点(前置型,后置型,环绕型,最终型,异常);28.AOP的特点和优缺点?29.AOP三种代理方式(动态代理,CGLIB代理,代理工厂bean)30.Execution配置的通用切入点的示例?31.在项目组,你们是如何使用AOP的?32.说说你对IOC的理解33.如何在Spring中使用JNDI的数据源?34.Spring如何整合Struts1.x?35.Spring如何整合Struts2.x?36.Spring如何整合Hibernate?37.Spring如何整合IBatis?38.Spring如何整合MyBatis?39.Spring的JDBC跟传统的JDBC的区别?41.Spring有哪些核心类?42.SpringMVC的工作机制?43.Hibernate中update和saveOrUpdate的区别?44.SpringMVC有哪些核心类,作用?45.SpringMVC数据如何校验,错误信息在页面如何呈现?46.SpringMVC注解标签有哪些?47.SpringMVC的特点(优点)?48.SpringMVC有哪些控制器组件?49.SpringMVC如何处理上传文件?如何使用ajax异步请求?50.Spring在视图中的标签有哪些?51.SpringAOP的注解标签有哪些?52.Spring如何配置连接池?53.连接池DBCP,C3P0,PROXOOL三个的区别---------------------------1.什么是Spring?答:Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP aspect oriene program)的容器框架.它的主要目的是简化企业开发;Spring的设计思想是,单例模式和工厂模式;2.Spring有什么特点?答:轻量级,低侵入的设计Spring的DI机制降低了业务对象替换的复杂性Spring不依赖于web容器,独立于各种应用服务器,Write Once,Run Anywhere(一次编译到处运行)高度开放性:Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部,它的架构仍然是内在稳定的3.Spring的有哪些模块?各个模块的作用?答:Spring Core:Spring的基石,提供了Spring的最主要的核心机制:控制反转和依赖注入Spring Context:提供了Spring的上下文信息,如:国际化,验证等Spring Web支持:简化了处理多部分请求Spring MVC框架支持:一个全功能的构建Web应用程序的MVC实现,MVC容纳了大量视图技术,其中包括JSP、Velocity等。
ssm框架总结
![ssm框架总结](https://img.taocdn.com/s3/m/e5f25bf1db38376baf1ffc4ffe4733687e21fc81.png)
ssm框架总结SSM框架总结SSM框架是目前Java开发中使用最广泛的三大主流框架之一,它由Spring、SpringMVC和MyBatis三个独立的框架组成,各自承担不同的职责和功能。
在这篇文章中,我将对SSM框架进行总结和分析。
一、Spring框架Spring是一个轻量级的Java企业级应用开发框架,它提供了一站式的解决方案,能够简化开发过程并提高开发效率。
Spring框架的核心是控制反转(IoC)和面向切面编程(AOP)。
控制反转是指将对象的创建和依赖关系的管理交给Spring容器来完成,开发者只需要通过配置文件或注解来定义所需的Bean,然后从容器中获取即可。
这样的设计思想可以降低代码的耦合度,提高代码的可维护性。
面向切面编程是Spring框架的另一个重要特性,它通过在主业务逻辑上方插入横切关注点(如日志、事务管理等),实现了代码的模块化和重用性。
开发者可以通过定义切面来对代码进行横向扩展,而不必修改原有的业务逻辑代码。
二、SpringMVC框架SpringMVC是一种典型的MVC(Model-View-Controller)设计模式的实现框架,它基于Servlet容器并与Spring框架无缝集成,用于开发Web应用程序。
在SpringMVC框架中,Controller负责接收和处理用户请求,然后将处理结果封装成Model对象,最后通过View来展示给用户。
通过这种模式的划分,能够有效地分离前端与后端的责任,并提高开发效率。
SpringMVC框架提供了丰富的注解和标签库,开发者可以通过这些工具来简化开发过程,减少样板代码,并且可以与前端框架(如Bootstrap、jQuery等)无缝集成,提供更好的用户体验。
三、MyBatis框架MyBatis是一种基于Java的持久层框架,它利用了面向对象的编程方式来完成与数据库的交互。
通过XML配置和SQL映射文件,开发者可以轻松地实现与数据库的交互操作。
北大青鸟软件园校区:SpringMVC-双亲上下文的说明
![北大青鸟软件园校区:SpringMVC-双亲上下文的说明](https://img.taocdn.com/s3/m/576813282f60ddccda38a040.png)
网址/SpringMVC深入总结--双亲上下文的说明如果你使用了listener监听器来加载配置,一般在Struts+Spring+Hibernate的项目中都是使用listener监听器的。
如下Java代码Spring会创建一个全局的WebApplicationContext上下文,称为根上下文,保存在ServletContext中,key是WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE属性的值。
可以使用工具类取出上下文:WebApplicationContextUtils.getWebApplicationContext(ServletContext); DispatcherServlet是一个Servlet,可以同时配置多个,每个 DispatcherServlet有一个自己的 WebApplicationContext上下文,这个上下文继承了根上下文中所有东西。
保存在 ServletContext中,key是"org.springframework.web.servlet.FrameworkServlet.CONTEXT"+Servlet名称。
当一个Request对象产生时,会把这个WebApplicationContext上下文保存在Request对象中,key 是DispatcherServlet.class.getName() + ".CONTEXT"。
可以使用工具类取出上下文:RequestContextUtils.getWebApplicationContext(request);Spring中的 ApplicationContext实例可以被限制在不同的作用域(scope)中。
在web MVC框架中,每个 DispatcherServlet有它自己的WebApplicationContext ,这个context继承了根 WebApplicationContext 的所有bean定义。
项目技术总结报告
![项目技术总结报告](https://img.taocdn.com/s3/m/12588e40bb1aa8114431b90d6c85ec3a87c28b8b.png)
项目技术总结报告一、项目概述本项目是一个旅游平台的开发,旨在为用户提供方便快捷的旅行服务。
在项目开发过程中,我们采用了以下技术来实现平台的各项功能。
二、前端技术1.HTML/CSS:使用HTML和CSS完成平台的页面布局和样式设计,展现出清晰、美观的界面。
2. JavaScript:利用JavaScript实现前端的交互功能,如用户注册、登录、等,并通过AJAX与后端进行数据的交互。
三、后端技术1. Java:作为后端开发的主要语言,使用Java来编写平台的业务逻辑和数据处理部分。
2. Spring框架:采用Spring框架来实现平台的各个模块,包括用户管理、订单管理、景点信息管理等。
3. Spring MVC:使用Spring MVC来处理前后端的数据交互以及请求转发等操作。
4. MyBatis:结合MyBatis框架进行数据库的访问,提高数据库操作的效率和代码的可维护性。
5.MySQL:选择MySQL作为数据库存储平台,使用数据库进行数据的存储和管理。
四、服务器技术1. Tomcat:作为应用服务器,使用Tomcat来部署项目,并提供相应的运行环境。
2. Nginx:作为反向代理服务器,使用Nginx进行负载均衡,提高系统的并发处理能力和稳定性。
五、安全技术1.HTTPS:为了保证用户数据的安全性,采用HTTPS协议进行数据加密传输。
2. Token认证:使用Token认证技术对用户进行身份验证,确保用户的合法性和数据的安全性。
3.SQL注入防护:在后端代码中增加相应的校验和过滤,防止SQL注入攻击。
六、项目成果经过团队的努力,我们成功地完成了旅游平台的开发,并取得了以下成果:1.用户管理:实现用户的注册、登录、注销和信息修改等功能,保障用户的正常使用和数据安全。
2.景点信息管理:提供景点的浏览和功能,用户可以根据自己的需求找到合适的旅行目的地。
3.订单管理:实现用户的订单信息的提交、支付和查询等功能,提供便捷的订单管理服务。
SpringMVC框架知识点详解
![SpringMVC框架知识点详解](https://img.taocdn.com/s3/m/ab863aa0dc3383c4bb4cf7ec4afe04a1b071b0a2.png)
SpringMVC框架知识点详解官⽅的下载⽹址是:⼀、Spring MVC简介1.1Spring MVC⼯作流程映射器:主要是根据浏览器上输⼊的url来映射所有满⾜要求的Handle(控制器类)适配器:主要是决定调⽤哪个Handler来实现具体的业务逻辑1.2Spring MVC VS Struts21)springmvc的⼊⼝是⼀个servlet,即前端控制器;struts2⼊⼝是⼀个filter过虑器,即前端过滤器,2)springmvc是基于⽅法开发(控制器类是单例的,不可能维护实体变量),传递参数是通过⽅法形参,可以设计为单例;struts2是基于类开发(维护⼀个实体变量),传递参数是通过类的属性,只能设计为多例3)springmvc通过参数解析器是将request对象内容进⾏解析成⽅法形参,将响应数据和页⾯封装成ModelAndView对象,最后⼜将模型数据通过request对象传输到页⾯;struts采⽤值栈存储请求和响应的数据,通过OGNL存取数据4)springmvc开发运⾏速度快于struts2⼆、Spring MVC⼯程搭建(xml)2.1导⼊springioc,springweb , springmvc相关的jar包2.2在/WEB-INF/ web.xml⽂件配置SpringMVC的前端控制器DispatcherServlet(前端控制器)<!-- 注册springmvc核⼼控制器 --><servlet><!-- servlet-name名字随便写 --><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 通知DispatcherServlet去指定的⽬录下加载springmvc.xml配置⽂件classpath:是在⼯程的src路径下寻找如果不配置init-param的话,控制器会⾃动寻找/WEB-INF/<servlet-name>-servlet.xml⽂件--><init-param><!-- 值是固定的,相当于键值对 --><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.action</url-pattern>//拦截请求</servlet-mapping>注:在默认情况下:springmvc框架的配置⽂件必须叫<servlet-name>-servlet.xml且必须放在/WEB-INF/⽬录下,我们可以在web.xml⽂件中,为DispatcherServlet配置⼀个初始化参数,让它去我们指定的⽬录下加载springmvc.xml配置⽂件2.3配置springmvc.xml注:该配置⽂件的命名规则遵循web.xml⽂件中核⼼控制器配置。
项目个人技术总结2篇
![项目个人技术总结2篇](https://img.taocdn.com/s3/m/55ead920a55177232f60ddccda38376bae1fe05a.png)
项目个人技术总结项目个人技术总结精选2篇(一)在这个项目中,我学到了很多新的技术和知识。
以下是我个人在这个项目中的技术总结:1. 熟悉了项目架构和技术栈:这个项目使用了一些主流的技术和框架,如Spring Boot、Spring MVC、Hibernate等。
通过这个项目,我对这些技术和框架有了更深入的了解,并学习了一些最佳实践。
2. 掌握了前后端分离开发模式:项目采用了前后端分离的开发模式,前端使用了AngularJS框架。
通过和前端工程师的合作,我学会了如何与前端进行接口对接,以及如何在前端开发过程中提供必要的支持。
3. 学会了使用Docker进行应用部署:我们采用了Docker来进行应用的部署和运行。
这样可以方便地复制和迁移应用,提高了应用的可移植性和可维护性。
4. 学会了进行系统性能优化:在项目中,我们遇到了一些性能问题,如数据库查询慢、接口响应时间长等。
通过分析和优化,我们成功解决了这些问题。
这个过程让我学会了如何进行系统性能优化,如数据库索引的设计和使用、缓存的使用等。
5. 提升了团队协作能力:在这个项目中,我和团队成员密切合作,共同解决了许多复杂的问题。
通过与团队成员的讨论和合作,我学会了如何更好地与团队合作,如如何进行任务划分、如何有效地沟通等。
总的来说,通过这个项目,我不仅学到了许多新的技术和知识,也提升了自己的团队协作能力和问题解决能力。
我相信这些经验和技能对我的职业发展将会非常有帮助。
项目个人技术总结精选2篇(二)作为项目主管,我要对自己的工作进行个人总结。
首先,我认为自己在项目的规划和组织上做得比较好。
我能够合理安排资源,制定明确的目标和计划,并确保团队成员理解和执行。
同时,我也能够及时调整计划,应对项目中的变化和风险。
其次,我注重沟通和协调。
我与团队成员保持良好的沟通,并且及时解决他们在项目中遇到的问题和困难。
我也与其他相关部门和利益相关者保持紧密的联系,确保项目能够顺利进行。
毕业设计spring mvc
![毕业设计spring mvc](https://img.taocdn.com/s3/m/40164ead0875f46527d3240c844769eae009a394.png)
毕业设计spring mvc毕业设计Spring MVC一、引言在计算机科学与技术领域,毕业设计是学生在大学期间的重要任务之一。
作为一个软件开发项目,毕业设计旨在让学生将所学的理论知识应用到实际项目中,并通过实践来提升自己的技术能力和解决问题的能力。
本文将介绍一个常见的毕业设计主题,即使用Spring MVC框架进行开发。
二、Spring MVC简介Spring MVC是一个基于Java的Web应用开发框架,它采用了Model-View-Controller(MVC)的架构模式,用于构建灵活、可扩展和高效的Web应用程序。
Spring MVC提供了一套强大的功能,包括请求处理、视图解析、数据绑定、表单验证等,使得开发人员可以更加专注于业务逻辑的实现。
三、项目需求分析在进行毕业设计之前,首先需要进行项目需求分析。
这个阶段的目标是明确项目的功能和特性,以便后续的开发工作能够有一个明确的目标。
例如,一个简单的毕业设计项目可以是一个在线图书销售平台,其中包括用户注册、图书浏览、购买和评论等功能。
四、项目架构设计在确定了项目需求之后,接下来需要进行项目架构设计。
项目架构设计是指确定项目的整体结构和组织方式,包括模块划分、数据库设计、系统接口定义等。
在使用Spring MVC进行开发时,可以将项目划分为控制器层、服务层和数据访问层等模块,并使用Spring的依赖注入机制来管理各个模块之间的依赖关系。
五、数据库设计在进行数据库设计时,需要根据项目需求分析的结果来确定数据库的表结构和字段。
例如,在图书销售平台的项目中,可以设计一个用户表、图书表和订单表等。
同时,还需要考虑数据库的性能和安全性等方面的问题,例如使用索引来提高查询效率,使用密码加密算法来保护用户密码等。
六、前端设计在进行前端设计时,可以使用HTML、CSS和JavaScript等技术来实现用户界面。
Spring MVC提供了视图解析器的功能,可以将后端数据与前端页面进行绑定,从而实现动态的Web页面。
SpringMVC之ModelAndView的用法(转)
![SpringMVC之ModelAndView的用法(转)](https://img.taocdn.com/s3/m/17018b1dbb1aa8114431b90d6c85ec3a87c28bb7.png)
SpringMVC之ModelAndView的⽤法(转)(⼀)使⽤ModelAndView类⽤来存储处理完后的结果数据,以及显⽰该数据的视图。
从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作⽤。
业务处理器调⽤模型层处理完⽤户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。
框架通过调⽤配置⽂件中定义的视图解析器,对该对象进⾏解析,最后把结果数据显⽰在指定的页⾯上。
具体作⽤:1、返回指定页⾯ModelAndView构造⽅法可以指定返回的页⾯名称,也可以通过setViewName()⽅法跳转到指定的页⾯ ,2、返回所需数值使⽤addObject()设置需要返回的值,addObject()有⼏个不同参数的⽅法,可以默认和指定返回对象的名字。
1、【其源码】:熟悉⼀个类的⽤法,最好从其源码⼊⼿。
public class ModelAndView {/** View instance or view name String */private Object view //该属性⽤来存储返回的视图信息/** Model Map */private ModelMap model;//<span style="color: rgb(0, 130, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px;">该属性⽤来存储处理后的结果数据</span> /*** Indicates whether or not this instance has been cleared with a call to {@link #clear()}.*/private boolean cleared = false;/*** Default constructor for bean-style usage: populating bean* properties instead of passing in constructor arguments.* @see #setView(View)* @see #setViewName(String)*/public ModelAndView() {}/*** Convenient constructor when there is no model data to expose.* Can also be used in conjunction with <code>addObject</code>.* @param viewName name of the View to render, to be resolved* by the DispatcherServlet's ViewResolver* @see #addObject*/public ModelAndView(String viewName) {this.view = viewName;}/*** Convenient constructor when there is no model data to expose.* Can also be used in conjunction with <code>addObject</code>.* @param view View object to render* @see #addObject*/public ModelAndView(View view) {this.view = view;}/*** Creates new ModelAndView given a view name and a model.* @param viewName name of the View to render, to be resolved* by the DispatcherServlet's ViewResolver* @param model Map of model names (Strings) to model objects* (Objects). Model entries may not be <code>null</code>, but the* model Map may be <code>null</code> if there is no model data.*/public ModelAndView(String viewName, Map<String, ?> model) {this.view = viewName;if (model != null) {getModelMap().addAllAttributes(model);}}/*** Creates new ModelAndView given a View object and a model.* <emphasis>Note: the supplied model data is copied into the internal* storage of this class. You should not consider to modify the supplied* Map after supplying it to this class</emphasis>* @param view View object to render* @param model Map of model names (Strings) to model objects* (Objects). Model entries may not be <code>null</code>, but the* model Map may be <code>null</code> if there is no model data.*/public ModelAndView(View view, Map<String, ?> model) {this.view = view;if (model != null) {getModelMap().addAllAttributes(model);}}/*** Convenient constructor to take a single model object.* @param viewName name of the View to render, to be resolved* by the DispatcherServlet's ViewResolver* @param modelName name of the single entry in the model* @param modelObject the single model object*/public ModelAndView(String viewName, String modelName, Object modelObject) { this.view = viewName;addObject(modelName, modelObject);}/*** Convenient constructor to take a single model object.* @param view View object to render* @param modelName name of the single entry in the model* @param modelObject the single model object*/public ModelAndView(View view, String modelName, Object modelObject) { this.view = view;addObject(modelName, modelObject);}/*** Set a view name for this ModelAndView, to be resolved by the* DispatcherServlet via a ViewResolver. Will override any* pre-existing view name or View.*/public void setViewName(String viewName) {this.view = viewName;}/*** Return the view name to be resolved by the DispatcherServlet* via a ViewResolver, or <code>null</code> if we are using a View object.*/public String getViewName() {return (this.view instanceof String ? (String) this.view : null);}/*** Set a View object for this ModelAndView. Will override any* pre-existing view name or View.*/public void setView(View view) {this.view = view;}/*** Return the View object, or <code>null</code> if we are using a view name* to be resolved by the DispatcherServlet via a ViewResolver.*/public View getView() {return (this.view instanceof View ? (View) this.view : null);}/*** Indicate whether or not this <code>ModelAndView</code> has a view, either* as a view name or as a direct {@link View} instance.*/public boolean hasView() {return (this.view != null);}/*** Return whether we use a view reference, i.e. <code>true</code>* if the view has been specified via a name to be resolved by the* DispatcherServlet via a ViewResolver.*/public boolean isReference() {return (this.view instanceof String);}/*** Return the model map. May return <code>null</code>.* Called by DispatcherServlet for evaluation of the model.*/protected Map<String, Object> getModelInternal() {return this.model;/*** Return the underlying <code>ModelMap</code> instance (never <code>null</code>). */public ModelMap getModelMap() {if (this.model == null) {this.model = new ModelMap();}return this.model;}/*** Return the model map. Never returns <code>null</code>.* To be called by application code for modifying the model.*/public Map<String, Object> getModel() {return getModelMap();}/*** Add an attribute to the model.* @param attributeName name of the object to add to the model* @param attributeValue object to add to the model (never <code>null</code>)* @see ModelMap#addAttribute(String, Object)* @see #getModelMap()*/public ModelAndView addObject(String attributeName, Object attributeValue) {getModelMap().addAttribute(attributeName, attributeValue);return this;}/*** Add an attribute to the model using parameter name generation.* @param attributeValue the object to add to the model (never <code>null</code>)* @see ModelMap#addAttribute(Object)* @see #getModelMap()*/public ModelAndView addObject(Object attributeValue) {getModelMap().addAttribute(attributeValue);return this;}/*** Add all attributes contained in the provided Map to the model.* @param modelMap a Map of attributeName -> attributeValue pairs* @see ModelMap#addAllAttributes(Map)* @see #getModelMap()*/public ModelAndView addAllObjects(Map<String, ?> modelMap) {getModelMap().addAllAttributes(modelMap);return this;}/*** Clear the state of this ModelAndView object.* The object will be empty afterwards.* <p>Can be used to suppress rendering of a given ModelAndView object* in the <code>postHandle</code> method of a HandlerInterceptor.* @see #isEmpty()* @see HandlerInterceptor#postHandle*/public void clear() {this.view = null;this.model = null;this.cleared = true;}/*** Return whether this ModelAndView object is empty,* i.e. whether it does not hold any view and does not contain a model.*/public boolean isEmpty() {return (this.view == null && CollectionUtils.isEmpty(this.model));}/*** Return whether this ModelAndView object is empty as a result of a call to {@link #clear} * i.e. whether it does not hold any view and does not contain a model.* <p>Returns <code>false</code> if any additional state was added to the instance* <strong>after</strong> the call to {@link #clear}.* @see #clear()*/public boolean wasCleared() {return (this.cleared && isEmpty());}* Return diagnostic information about this model and view.*/@Overridepublic String toString() {StringBuilder sb = new StringBuilder("ModelAndView: ");if (isReference()) {sb.append("reference to view with name '").append(this.view).append("'");}else {sb.append("materialized View is [").append(this.view).append(']');}sb.append("; model is ").append(this.model);return sb.toString();}在源码中有7个构造函数,如何⽤?是⼀个重点。
springMVC详解以及注解说明
![springMVC详解以及注解说明](https://img.taocdn.com/s3/m/c725cd060740be1e650e9a2c.png)
springMVC详解以及注解说明基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置Bean、装配Bean 的功能,您可以使用基于注释的Spring IoC 替换原来基于XML 的配置。
本文通过实例详细讲述了Spring 2.5 基于注释IoC 功能的使用。
概述注释配置相对于XML 配置具有很多的优势:∙ 它可以充分利用Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。
如使用JPA 注释配置ORM 映射时,我们就不需要指定PO 的属性名、类型等信息,如果关系表字段和PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过Java 反射机制获取。
∙ 注释和Java 代码位于一个文件中,而XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和Java 代码放在一起,有助于增强程序的内聚性。
而采用独立的XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。
因此在很多情况下,注释配置比XML 配置更受欢迎,注释配置有进一步流行的趋势。
Spring 2.5 的一大增强就是引入了很多注释类,现在您已经可以使用注释配置完成大部分XML 配置的功能。
在这篇文章里,我们将向您讲述使用注释进行Bean 定义和依赖注入的内容。
Spring2.5的注释Spring 2.5 提供了AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、PersistenceAnnotationBeanPostProcessor 和RequiredAnnotationBeanPostProcessor这四个主要的关于Annotation 的BeanPostProcessor。
详解springmvc常用5种注解
![详解springmvc常用5种注解](https://img.taocdn.com/s3/m/c0ad05004531b90d6c85ec3a87c24028915f8598.png)
详解springmvc常⽤5种注解⼀、组件型注解:1、@Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean。
2、@Repository 对Dao实现类进⾏注解 (特殊的@Component)3、@Service ⽤于对业务逻辑层进⾏注解, (特殊的@Component)4、@Controller ⽤于控制层注解, (特殊的@Component)以上四种注解都是注解在类上的,被注解的类将被spring初始话为⼀个bean,然后统⼀管理。
⼆、请求和参数型注解:1、@RequestMapping:⽤于处理请求地址映射,可以作⽤于类和⽅法上。
●value:定义request请求的映射地址●method:定义地request址请求的⽅式,包括【GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.】默认接受get请求,如果请求⽅式和定义的⽅式不⼀样则请求⽆法成功。
●params:定义request请求中必须包含的参数值。
●headers:定义request请求中必须包含某些指定的请求头,如:RequestMapping(value = "/something", headers = "content-type=text/*")说明请求中必须要包含"text/html", "text/plain"这中类型的Content-type头,才是⼀个匹配的请求。
●consumes:定义请求提交内容的类型。
●produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回@RequestMapping(value="/requestTest.do",params = {"name=sdf"},headers = {"Accept-Encoding=gzip, deflate, br"},method = RequestMethod.GET) public String getIndex(){System.out.println("请求成功");return "index";}上⾯代码表⽰请求的⽅式为GET请求,请求参数必须包含name=sdf这⼀参数,然后请求头中必须有 Accept-Encoding=gzip, deflate, br这个类型头。
springmvc-机制(拦截器、aop、异常)
![springmvc-机制(拦截器、aop、异常)](https://img.taocdn.com/s3/m/be3b54a6b8f67c1cfbd6b81b.png)
◆Spring-mvc知识➢概念Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC 也是要简化我们日常Web开发的。
图1 Spring Web MVC核心架构图理解这张图之前我们得先知道以下的几个名词:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器(Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)步骤解析:核心架构的具体流程步骤如下:1、首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;2、DispatcherServlet——>HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;3、DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;4、HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView 对象(包含模型数据、逻辑视图名);5、ModelAndView的逻辑视图名——> ViewResolver,ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;6、View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model 实际是一个Map数据结构,因此很容易支持其他视图技术;7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
springMVC使用注解注入接口实现类
![springMVC使用注解注入接口实现类](https://img.taocdn.com/s3/m/9e7c6bd4a48da0116c175f0e7cd184254b351b33.png)
springMVC使⽤注解注⼊接⼝实现类spring常⽤的注释:@Component:标准⼀个普通的spring Bean类。
@Controller:标注⼀个控制器组件类。
@Service:标注⼀个业务逻辑组件类。
@Repository:标注⼀个DAO组件类在代码中注释注⼊接⼝实现类时,1.⽐如有⼀个接⼝如下:1. 1 public interface Filter {2 public String doFilter(String param);3 }2.有如下接⼝实现类:1. 1 public class TimeFilter implements Filter {23 @Override4 public String doFilter(String param) {5 return param.replace("aa", "bb");6 }78 }3.使⽤⽅式:在接⼝实现类定义位置添加注解 @Service("timeFilter"),如下:1. 1 import org.springframework.stereotype.Service;2 @Service("timeFilter")3 public class TimeFilter implements Filter {45 @Override6 public String doFilter(String param) {7 return param.replace("aa", "bb");8 }910 }4.在需要注⼊的地⽅使⽤如下⽅式引⼊:@Autowired@Qualifier("timeFilter")Filter timeFilter;注意:1.在引⽤实现类的时候,使⽤的是实现类的接⼝(这是因为 springMVC 代理的接⼝)。
springmvc知识点整理
![springmvc知识点整理](https://img.taocdn.com/s3/m/3a5ccafa162ded630b1c59eef8c75fbfc77d94fc.png)
springmvc知识点整理1.Springmvc架构2.Springmvc组件三⼤组件:处理器映射器,处理器适配器,视图解析器处理器映射器:注解式处理器映射器,对类中标记了@ResquestMapping的⽅法进⾏映射,根据@ResquestMapping定义的url匹配@ResquestMapping标记的⽅法,匹配成功返回HandlerMethod对象给前端控制器。
<!-- 配置处理器映射器 --><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />处理器适配器:对标记@ResquestMapping的⽅法进⾏适配<!-- 配置处理器适配器 --><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />解决办法:SpringMVC使⽤<mvc:annotation-driven>⾃动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter可以在springmvc.xml配置⽂件中使⽤<mvc:annotation-driven>替代注解处理器和适配器的配置。
<!-- 注解驱动 --><mvc:annotation-driven />视图解析器:视图解析器使⽤SpringMVC框架默认的InternalResourceViewResolver,这个视图解析器⽀持JSP视图解析。
<!-- 配置视图解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置逻辑视图的前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 配置逻辑视图的后缀 --><property name="suffix" value=".jsp" /></bean>最终jsp物理地址:前缀+逻辑视图名+后缀3.1简单参数的绑定(@RequestParam)当请求的参数名称和处理器形参名称⼀致时会将请求参数与形参进⾏绑定,若不⼀致,就需要@RequestParamvalue:参数名字,即⼊参的请求参数名字,如value=“itemId”表⽰请求的参数区中的名字为itemId的参数的值将传⼊required:是否必须,默认是true,表⽰请求中⼀定要有相应的参数,否则将报错TTP Status 400 - Required Integer parameter 'XXXX' is not presentdefaultValue:默认值,表⽰如果请求中没有同名参数时的默认值public String queryItemById(@RequestParam(value = "itemId", required = true, defaultValue = "1") Integer id,ModelMap modelMap) {}这⾥需要传⼊的是id,实际传⼊的是itemId,需要⽤@RequestParam转换⼀下3.2pojo参数绑定如果提交的参数很多,或者提交的表单中的内容很多的时候,可以使⽤简单类型接受数据,也可以使⽤pojo接收数据,但是pojo对象中的属性名和表单中input的name属性⼀致。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Org . springframework . ui . ModelMap传递数据供视图所用
${base}取的是当前页面所在的路径。
它随页面的位置改变而改变。
web开发一共有四个作用域,范围从高到低分为appliaction作用域(全局作用域),session 作用域,request作用域和page作用域。
${base}是el表达式语法,它会自动先从page作用域开始查找,如果没有再找request作用域,然后是session,最后再是application作用域。
动态网页项目,页面直接访问的是webcontent下的。
Weblogic.xml配置文件作用:
weblogic.xml主要配置web容器的一些属性,比较JSP编译时间间隔、编译路径等web.xml是配置整个应用工程的属性,如servlet等
你用tomcat jboss等web容器和weblogic一样,它们单独有自己的配置文件
视图解析器
SpringMVC用于处理视图最重要的两个接口是ViewResolver和View FreeMarkerViewResolver 是继承自springmvc的一个接口,只是和freemarker同名而已
XmlViewResolver
貌似工具库里面定义好了(如ftl、分词库),然后在common中用
<@s.m "error.errorMessage"/>什么意思??
视频
spring mvc
freemarker
金磊/jinlei/index.jhtml
怎么发布到网上(FTP??)
搭个‘Android Lib安卓库’网站(有论坛、博客、下载、尚学宝)
1、界面
QQ互联
/article/5225f26b0ed354e6fb09085d.html
今天问题
VECTOR-
脚本语言-
注解--
为什么frame要经过FrameAct.java一下,再返回??
@Controller是spring的Controller控制器?
为什么我新建的html是
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
别人是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<noframes><body>浏览器不支持Frames框架时显示的内容</body></noframes> jar包
apache下的jar包
apache-ant-zip-1.8.0.jar(ant是什么??它的jar包??ant是脚本引擎,脚本语言有
JavaScript)
c3p0-0.9.1.2.jar
commons-codec-1.3.jar
commons-net-2.0.jar
commons-net-ftp-2.0.jar
dwr.jar
ehcache-1.6.2.jar
ganymed-ssh2-build251beta1.jar
htmlparser-1.6.jar
httpclient-4.0.3.jar
httpcore-4.1.jar
IKAnalyzer2012_u6.jar
jcaptcha-1.0.jar
jcl-over-slf4j-1.6.1.jar
jmagick.jar
json.jar
jta-1.1.jar
jug-2.0.0.jar
log4j-over-slf4j-1.6.1.jar
logback-classic-0.9.27.jar
logback-core-0.9.27.jar
lucene-core-3.0.3.jar
mailapi-1.4.2.jar
memcachedclient-2.0.1.jar
mysql-connector-5.1.8.jar
quartz-1.6.0.jar
slf4j-api-1.6.1.jar
smtp-1.4.2.jar
spymemcached-2.3.1.jar
-----------------------------------
spring mvc环境搭建:
1、web.xml,启动Dispatcher
2、创建servlet
3、创建controller.java(在spring mvc中,只要加了@controller就说明它是一个controller控制器了,非常简单)
其它注解
@RequestMapping("/frame/config_main.do") 只要页面上访问这个路径,就会返回这
个注解下的方法的return的方法。
学习任何MVC都要掌握的步骤:
1、搭建环境(写hello world)
2、传值
3、截获值
4、分发值
5、源码
6、异常
7、上传下载。