仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 540|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA网页设计Spring MVC 开辟疾速进门

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。疾速进门  这篇文章将教你疾速地上手利用Spring框架,假如你手上有一本《SpringinAction》,那末你最好从第三部分"Spring在Web层的使用--创建Web层"入手下手看,不然那将是一场噩梦!
  起首,我必要在你内心创建起SpringMVC的基础观点.基于Spring的Web使用程序吸收到http://localhost:8080/hello.do(现实上哀求路径是/hello.do)的哀求后,Spring将这个哀求交给一个名为helloController的程序举行处置,helloController再挪用一个名为hello.jsp的jsp文件天生HTML代码发给用户的扫瞄器显现.下面的称号(/hello.do,helloController,hello.jsp)都是变量,你能够变动.
  在SpringMVC中,jsp文件中只管不要有Java代码,只要HTML代码和"迭代(forEach)"与"判别(if)"两个jstl标签.jsp文件只作为衬着(或称为视图View)模板利用.
  好了,我们入手下手吧.起首我们必要一个放在WEB-INF目次下的web.xml文件:
web.xml:
  1. 1<?xmlversion="1.0"encoding="UTF-8"?>
  2. 2
  3. 3<web-appversion="2.4"xmlns="[u]http://java.sun.com/xml/ns/j2ee[/u]"
  4. 4xmlns:xsi="[u]http://www.w3.org/2001/XMLSchema-instance[/u]"
  5. 5xsi:schemaLocation="[u]http://java.sun.com/xml/ns/j2ee[/u]
  6. 6[u]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/u]">
  7. 7
  8. 8<context-param>
  9. 9<param-name>contextConfigLocation</param-name>
  10. 10<param-value>
  11. 11/WEB-INF/database.xml
  12. 12/WEB-INF/applicationContext.xml
  13. 13</param-value>
  14. 14</context-param>
  15. 15
  16. 16<listener>
  17. 17<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  18. 18</listener>
  19. 19
  20. 20<filter>
  21. 21<filter-name>encodingFilter</filter-name>
  22. 22<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  23. 23<init-param>
  24. 24<param-name>encoding</param-name>
  25. 25<param-value>UTF-8</param-value>
  26. 26</init-param>
  27. 27</filter>
  28. 28
  29. 29<filter-mapping>
  30. 30<filter-name>encodingFilter</filter-name>
  31. 31<url-pattern>*.do</url-pattern>
  32. 32</filter-mapping>
  33. 33
  34. 34<servlet>
  35. 35<servlet-name>ideawu</servlet-name>
  36. 36<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  37. 37<load-on-startup>1</load-on-startup>
  38. 38</servlet>
  39. 39
  40. 40<servlet-mapping>
  41. 41<servlet-name>ideawu</servlet-name>
  42. 42<url-pattern>*.do</url-pattern>
  43. 43</servlet-mapping>
  44. 44
  45. 45<welcome-file-list>
  46. 46<welcome-file>index.jsp</welcome-file>
  47. 47<welcome-file>index.html</welcome-file>
  48. 48</welcome-file-list>
  49. 49
  50. 50<jsp-config>
  51. 51<taglib>
  52. 52<taglib-uri>[u]http://java.sun.com/jsp/jstl/core[/u]</taglib-uri>
  53. 53<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
  54. 54</taglib>
  55. 55<taglib>
  56. 56<taglib-uri>[u]http://java.sun.com/jsp/jstl/fmt[/u]</taglib-uri>
  57. 57<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
  58. 58</taglib>
  59. 59</jsp-config>
  60. 60
  61. 61</web-app>
复制代码
  它设置了以下功效:

  • 设置DispatcherServlet(servlet标签),它是一个JavaServlet程序.我们将它定名为ideawu.然后我们再设置Servlet映照(servlet-mapping标签),也就是你但愿哪些哀求被DispatcherServlet处置.这里,我们设置后缀名为do(*.do)的一切URL哀求都被名为ideawu的DispatcherServlet的程序处置.选择.do只是一个习气,可是你不要选择.html!固然《SpringinAction》选择了.html,可是那是一种十分糟的作法,出格是你整合ApacheTomcat的时分.
  • 设置CharacterEncodingFilter(filter标签),不然你会发明中文乱码.由于我的jsp和html文件都是UTF-8编码的,以是我在param-value标签中设置了UTF-8.估量你利用的是GB2312大概GBK,当即转到UTF-8下去吧.
  • 分化设置文件.context-param标签指明我们的设置文件另有/WEB-INF/database.xml和/WEB-INF/applicationContext.xml.ContextLoaderListener(listener标签)由此得知设置文件是哪些,它会将它们载进.
  由于我们将DispatcherServlet定名为ideawu,以是我们在WEB-INF目次下创建一个名为ideawu-servlet.xml的文件:
  ideawu-servlet.xml:
  1. 1<?xmlversion="1.0"encoding="UTF-8"?>
  2. 2<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""
  3. [u]http://www.springframework.org/dtd/spring-beans.dtd[/u]">
  4. 3
  5. 4<beans>
  6. 5
  7. 6<beanid="viewResolver"class="org.springframework.web.servlet.
  8. _view.InternalResourceViewResolver">
  9. 7<propertyname="prefix"value="/WEB-INF/jsp/"/>
  10. 8<propertyname="suffix"value=".jsp"/>
  11. 9</bean>
  12. 10
  13. 11<beanid="simpleUrlHandlerMapping"
  14. class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  15. 12<propertyname="mappings">
  16. 13<props>
  17. 14<propkey="/hello.do">helloController</prop>
  18. 15</props>
  19. 16</property>
  20. 17</bean>
  21. 18
  22. 19<beanid="helloController"class="com.ideawu.HelloController">
  23. 20<!--
  24. 21<propertyname="helloManager"ref="helloManager"/>
  25. 22-->
  26. 23</bean>
  27. 24
  28. 25</beans>
复制代码
  它设置了以下功效:

  • 设置InternalResourceViewResolver,它是jsp衬着模板的处置器.假如你告知InternalResourceViewResolver处置一个名为hello的模板时,它会衬着/WEB-INF/jsp/hello.jsp文件.把jsp文件放到/WEB-INF/jsp/目次下是被勉励的,如许能够避免用户不经由Controller间接会见jsp文件从而堕落(有些淘气的人很喜好如许做).
  • 设置SimpleUrlHandlerMapping,在下面的设置文件中,/hello.do的哀求将被helloController处置."/hello.do"和"helloController"是变量,你能够变动.可是你注重到了吗,hello.do以.do作为后缀名.假如这里(本文的前提下)你不利用.do作为后缀名,就没有程序来处置这个哀求了.由于DispatcherServlet将收到的哀求转交给SimpleUrlHandlerMapping,DispatcherServlet收不到的哀求,SimpleUrlHandlerMapping固然也收不到了.你能够在props标签内设置多个prop标签.
  • 我们将在前面编写com.ideawu.HelloController类.
  下面,我们在web.xml文件中告知ContextLoaderListener,我们另有别的两个设置文件/WEB-INF/database.xml和/WEB-INF/applicationContext.xml.

  applicationContext.xml:
  1. 1<?xmlversion="1.0"encoding="UTF-8"?>
  2. 2<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""
  3. [u]http://www.springframework.org/dtd/spring-beans.dtd[/u]">
  4. 3
  5. 4<beans>
  6. 5
  7. 6<beanid="propertyConfigurer"
  8. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  9. 7<propertyname="locations">
  10. 8<list>
  11. 9<value>/WEB-INF/jdbc.properties</value>
  12. 10</list>
  13. 11</property>
  14. 12</bean>
  15. 13
  16. 14</beans>
复制代码
  它设置了以下功效:

  • 读取/WEB-INF/jdbc.properties文件.你能够在list标签中设置多个value标签.
  database.xml:
  1. 1<?xmlversion="1.0"encoding="UTF-8"?>
  2. 2<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""
  3. [u]http://www.springframework.org/dtd/spring-beans.dtd[/u]">
  4. 3
  5. 4<beans>
  6. 5
  7. 6<!--Removethisifyourdatabasesettingisfine.
  8. 7<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
  9. 8<propertyname="driverClassName"value="${jdbc.driverClassName}"/>
  10. 9<propertyname="url"value="${jdbc.url}"/>
  11. 10<propertyname="username"value="${jdbc.username}"/>
  12. 11<propertyname="password"value="${jdbc.password}"/>
  13. 12</bean>
  14. 13-->
  15. 14
  16. 15<!--TransactionmanagerforasingleJDBCDataSource
  17. 16<beanid="transactionManager"
  18.        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  19. 17<propertyname="dataSource"ref="dataSource"/>
  20. 18</bean>
  21. 19-->
  22. 20
  23. 21<!--
  24. 22<beanid="attributeManager"class="com.ideawu.core.AttributeManager">
  25. 23<propertyname="dataSource"ref="dataSource"/>
  26. 24</bean>
  27. 25-->
  28. 26
  29. 27</beans>
复制代码
  它设置了以下功效(不外,已正文失落了):

  • 设置数据库毗连.相似${jbbc.url}是一种会见变量的办法.我们能够从/WEB-INF/jdbc.properties中找到这个变量的值.假如你的数据库已设置好,就将第一个正文往失落.
  jdbc.properties:
  1. 1jdbc.driverClassName=com.mysql.jdbc.Driver
  2. 2jdbc.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8
  3. 3jdbc.username=test
  4. 4jdbc.password=12345
复制代码
  如今,我们来编写Java代码吧.
  1. 1/***********************************************************
  2. 2*Date:2006-8-26
  3. 3*File:HelloController.java
  4. 4*Author:ideawu
  5. 5***********************************************************/
  6. 6
  7. 7packagecom.ideawu;
  8. 8
  9. 9importorg.springframework.web.servlet.mvc.Controller;
  10. 10importorg.springframework.web.servlet.ModelAndView;
  11. 11
  12. 12importjavax.servlet.http.HttpServletRequest;
  13. 13importjavax.servlet.http.HttpServletResponse;
  14. 14
  15. 15/**
  16. 16*@authorideawu
  17. 17*
  18. 18*/
  19. 19publicclassHelloControllerimplementsController{
  20. 20/*
  21. 21privateHelloManagerhelloManager;
  22. 22
  23. 23publicvoidsetHelloManager(HelloManagerhelloManager){
  24. 24this.helloManager=helloManager;
  25. 25}
  26. 26*/
  27. 27
  28. 28publicModelAndViewhandleRequest(HttpServletRequestrequest,
  29. 29HttpServletResponseresponse)throwsException{
  30. 30
  31. 31request.setAttribute("hello_1","你好啊,Spring!");
  32. 32request.setAttribute("hello_2","HelloWorld!");
  33. 33
  34. 34returnnewModelAndView("hello");
  35. 35}
  36. 36
  37. 37}
复制代码
  returnnewModelAndView("hello");告知InternalResourceViewResolverjsp模板的名字叫作hello.request.setAttribute()设置的对象我们能够在jsp文件中利用.
  hello.jsp:
  1. 1<%@pagecontentType="text/html;charset=UTF-8"%>
  2. 2<%@taglibprefix="c"uri="[u]http://java.sun.com/jsp/jstl/core[/u]"%>
  3. 3<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""
  4.     [u]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/u]">
  5. 4<htmlxmlns="[u]http://www.w3.org/1999/xhtml[/u]">
  6. 5<head>
  7. 6<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
  8. 7<title>HelloWorld!</title>
  9. 8</head>
  10. 9<body>
  11. 10
  12. 11<h2>${hello_1}</h2>
  13. 12
  14. 13<h2>${hello_2}</h2>
  15. 14
  16. 15</body>
  17. 16</html>
复制代码
  你能够下载全部Web使用程序.在DebianLinux,Tomcat5.5.16,JDK1.5.0下运转优秀.解压后失掉一个spring文件夹,放到你的webapps目次下,在扫瞄器中输出http://localhost:8080/spring/hello.do就能够会见了。

对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。
小魔女 该用户已被删除
沙发
发表于 2015-1-20 18:49:11 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
深爱那片海 该用户已被删除
板凳
发表于 2015-1-29 14:53:32 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
简单生活 该用户已被删除
地板
发表于 2015-2-1 17:00:48 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
不帅 该用户已被删除
5#
发表于 2015-2-4 15:06:18 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
兰色精灵 该用户已被删除
6#
发表于 2015-2-5 10:45:54 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
第二个灵魂 该用户已被删除
7#
发表于 2015-2-10 17:26:02 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
admin 该用户已被删除
8#
发表于 2015-3-1 13:10:23 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
老尸 该用户已被删除
9#
发表于 2015-3-1 22:23:43 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
金色的骷髅 该用户已被删除
10#
发表于 2015-3-8 03:37:03 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
柔情似水 该用户已被删除
11#
发表于 2015-3-15 20:19:18 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
活着的死人 该用户已被删除
12#
发表于 2015-3-22 04:06:53 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 07:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表