SpringMVC HelloWorld

2.1. 目标

在浏览器中通过http://localhost:8080/项目名称/hello.do可以访问某个JSP显示的页面,页面中显示**Hello, SpringMVC!!!**字样。

2.2. 创建项目

创建Maven ProjectArtifact Idcn.tedu.springArtifact IdSPRINGMVC01Packaing必须选择war

创建完成后,首先生成web.xml文件。

然后,在pom.xml中添加spring-webmvc的依赖。

然后,将Spring的配置文件复制到src/main/resources下。

另外,还需要添加Tomcat运行环境。

2.3. 配置DispatcherServlet

打开web.xml,在配置文件中对DispatcherServlet进行配置,使之可以处理所有以.do结尾的请求:

<servlet>
	<servlet-name>SpringMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

SpringMVC框架是基于Spring框架的,后续开发的组件也应该随着项目启动就完成初始化,例如自定义的控制器类等等,也就意味着当项目启动时,就应该加载Spring的配置文件(spring.xml)。

DispatcherServlet的父类FrameworkServlet中定义了名为contextConfigLocation的属性,当DispatcherServlet初始化时,会自动读取该属性的值,而该属性的值应该是配置文件的路径,则DispatcherServlet就会自动加载配置文件!

所以,还应该对DispatcherSerlvetcontextConfigLocation属性进行配置,值是Spring的配置文件,并保证DispatcherServlet是默认启动的:

<servlet>
	<servlet-name>SpringMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

完成以上配置后,如果需要检测配置是否成功,可以在Spring的配置文件中添加组件扫描:

<context:component-scan base-package="cn.tedu.spring" />

然后,创建cn.tedu.spring.User类,为该类添加注解,并自定义构造方法:

@Component
public class User {
	public User() {
		System.out.println("初始化User对象。");
	}
}

当把项目部署到Tomcat时,Tomcat启动就会初始化DispatcherServlet,由于配置了初始化参数contextConfigLocation,就会加载Spring的配置文件,在配置文件中执行组件扫描,扫描到User时,由于User类添加了注解,Spring就会创建User类的对象,也就是执行了无参数的构造方法,则会执行以上代码中的输出语句!总的来说,启动Tomcat就可以看到以上输出语句!

2.4. 通过控制器接收请求

自定义控制器类cn.tedu.spring.HelloController,在类之前添加@Controller注解:

@Controller
public class HelloController {
}

然后,在类中添加方法以处理请求,关于方法的设计:

  1. 应该使用public权限;

  2. 暂时使用String作用方法的返回值类型;

  3. 方法的名称可以自由定义;

  4. 方法可以没有参数。

则可以添加:

public String showHello() {
}

然后,在方法之前使用@RequestMapping("请求路径")来配置请求路径:

@RequestMapping("hello.do")
public String showHello() {
}

则实现了请求路径与处理请求的方法的映射关系,即:当请求hello.do时,就会自动调用showHello()方法!

可以在以上方法中输出日志,以观察运行效率,暂时不关心返回值,所以,测试运行时页面将提示404错误,暂时是正常的:

@RequestMapping("hello.do")
public String showHello() {
	System.out.println("HelloController.showHello()");
	return null;
}

最后,重新启动项目,通过http://localhost:8080/SPRINGMVC01/hello.do进行访问,在浏览器中会提示404,并在Eclipse的控制台中可以看到以上输出语句的内容!

2.5. 显示页面

首先,在webapp/WEB-INF/hello.jsp页面,用于显示。

在控制器处理请求的方法中,返回的String值表示“视图名称”,将根据视图解析器ViewResolver进行解析,得到以上创建的JSP文件。

实际使用的InternalResourceViewResolver的工作原理就是以webapp作为根路径,“前缀 + 控制器返回的字符串 + 后缀”得到文件位,所以,可以配置为:

<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<!-- 前缀 -->
	<property name="prefix" value="/WEB-INF/"></property>
	<!-- 后缀 -->
	<property name="suffix" value=".jsp"></property>
</bean>

然后,控制器的方法必须返回"hello",这样,前缀与返回值与后缀拼接起来,就可以得到/WEB-INF/hello.jsp

最后,在浏览器再次访问,可以看到JSP页面设计的内容。

2.6. 作业

新创建SPRINGMVC02项目,要求通过http://localhost:8080/SPRINGMVC02/reg.do可以显示用户注册页面,页面中至少包括用户名、密码、年龄、手机号码、邮箱这5个输入框,及1个提交按钮;要求通过http://localhost:8080/SPRINGMVC02/login.do可以显示用户登录页面,页面中至少包括用户名、密码这2个输入框,及1个提交按钮;

提示:只需要创建1个控制器类,该类中添加2个处理请求的方法。

###################### 以上大纲步骤 #####################################
1.创建项目
2.配置Tomcat环境和web.xml文件,在web.xml文件当中配置*.do
3.添加spring.xml文件,并加上组件扫描,检查web.xml配置是否成功
4.添加SpringMVC的依赖
5.添加控制器
6.添加视图,在WEB-ING文件下,
7.根据视图后缀,在spring.xml文件下,添加视图解析器的配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员西柚柚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值