实验八 SpringMVC基础
一、实验目的及任务
通过该实验,掌握SpringMVC框架搭建步骤,掌握SpringMVC控制器的编写方法以及与spring依赖注入结合方法。
二、实验环境及条件
主机操作系统为Win10,Tomcat,j2sdk1.6或以上版本。
三、实验实施步骤
略
四、实验报告内容
1 程序界面输出结果是什么?给出登录正确和错误的截图。登录成功后,系统转入哪个jsp?失败后转向哪个jsp?
程序输出结果:
成功到main.jsp,失败到login.jsp。
2 第(4)(5)步骤中xxx,yyy应该修改为什么,才能保证注入正确的对象?
分别为@Resource(name = "myuserDao")和@Resource(name = "myuserService")
3 登录时,若输入错误的用户名或密码,会提示“用户名或密码不正确”,该提示是如何输出的?该提示存储到了哪个对象或参数里?
存储到了Model对象中中的error参数中。采用jsp的jstl语句进行输出。输出代码,${error }。
4 直接在浏览器里输入http://localhost:8080/yourprojectname/user/main.html,系统会调用哪个控制器方法,结果是什么?
调用的控制器代码如下。 @RequestMapping(value = "/main.html")
登录成功到frame页面,session为null则到login页面。
5 web.xml的那几行代码用来配置springMVC的前端控制器?ContextLoaderListener监听器的作用是什么?
(1)配置前端控制器的代码。
servlet和servlet-mapping包裹的就是。
(2) ContextLoaderListener 的作用
ContextLoaderListener
是 Spring MVC 框架中的一个组件,主要作用是在 Web 应用程序启动时加载 Spring MVC 的上下文(Context)。在 Spring MVC 中,有多种方式可以加载上下文,例如通过 ApplicationContext
、HttpConfig
、ContextLoaderListener
等,而 ContextLoaderListener
正是为了处理这些加载上下文的方式而存在的。
具体来说,ContextLoaderListener
的作用如下:
- 在 Spring MVC 应用程序启动时,
ContextLoaderListener
会被 Spring MVC 框架注册,以便在应用程序启动时加载上下文。 - 在应用程序启动后,
ContextLoaderListener
会接收到应用程序启动的事件,例如onStartup
、onRestart
、onShutdown
等。 - 在这些事件的回调函数中,
ContextLoaderListener
会根据具体的情况加载相应的上下文,例如通过onStartup
方法加载ApplicationContext
、通过onRestart
方法加载HttpConfig
、通过onShutdown
方法加载ContextLoaderListener
等。 ContextLoaderListener
会根据加载的上下文来初始化相应的视图和业务逻辑,从而完成应用程序的启动过程。
总之,ContextLoaderListener
是 Spring MVC 框架中非常重要的一个组件,它负责加载 Context,并在应用程序启动时初始化相应的视图和业务逻辑,从而完成应用程序的启动过程。
6 你遇到了哪些问题,如何解决的?
MVC(Model-View-Controller)是一种软件架构模式,它将应用程序分为三个基本组成部分:数据、视图和控制器。
在MVC中,数据、视图和控制器之间通常是通过模型、视图和模型的关系来实现的。模型负责存储应用程序的数据,视图负责显示数据,而控制器负责处理用户输入并更新数据和视图。
在MVC编程中,可能会遇到以下问题:
- 数据耦合:如果模型、视图和控制器之间的数据交互不够紧密,就可能会导致数据耦合问题。这可能会导致数据不一致、难以维护和扩展等问题。
- 视图解析:如果视图的解析过程不够简洁和高效,就可能会导致视图解析问题。这可能会导致用户无法快速获取所需的数据,或者导致页面卡顿等问题。
- 控制器重定向:如果控制器处理用户输入的方式不够安全和可靠,就可能会导致控制器重定向问题。这可能会导致用户无法正常地完成操作,或者导致应用程序崩溃等问题。
要解决这些问题,可以采取以下措施:
- 减少数据耦合:可以通过设计合理的数据模型、视图结构和控制器处理方式,来减少数据耦合问题。例如,可以将数据模型设计为基于领域模型的数据模型,或者将视图结构设计为基于控制器处理方式的视图结构。
- 提高视图解析效率:可以通过优化视图解析算法和处理方式,来提高视图解析效率。例如,可以采用视图预解析技术、缓存技术、异步处理技术等,来减少用户等待时间和页面卡顿等问题。
- 保证控制器安全性:可以通过设计安全的控制器处理方式,来保证控制器的安全性。例如,可以采用安全传输协议、安全数据加密、安全存储方式等,来防止用户数据泄露和应用程序崩溃等问题。
总之,解决MVC编程中的问题需要从数据耦合、视图解析和控制器安全性等方面入手,通过优化设计、技术创新和安全保障等手段,来实现应用程序的高效、稳定和安全运行。