java

位置:IT落伍者 >> java >> 浏览文章

Springmvc的开发流程--附带实例


发布日期:2021年10月31日
 
Springmvc的开发流程--附带实例
在开发Spring mvc的时候各种配置下来往往项目跑起来了但是一天不写第二天又忘记怎么搭建了所以应该将搭建的思路写下来这样开发的时候就会方便许多就像学武一样有武功秘籍和没有武功秘籍一样记住开发流程思路会变得很清晰开发起来也就更加快速

Spring mvc的开发流程如下

配置基础

>配置目录结构比如基于eclipse格式还是Maven格式

>配置webxml主要是以下几个

orgspringframeworkwebservletDispatcherServlet

orgsprntextContextLoadListener

orgspringframeworkwebfilterCharacterEncoding

orgspringframeworkwebutilLogjConfigListener

开发独立的业务逻辑并在配置文件中进行实例化(当然也可以直接new)

添加web请求入口

<a href= >登录</a>

添加HandlerMapping

DispatchServlet接收到web请求后将寻求相应的HandlerMapping进行web请求到具体的Controller实现相应的匹配

实现对应的Controler并添加到配置文件中

只有实现了ControllerDispatcherServlet并不会直到它的存在还需要将该控制器在配置文件中进行配置

添加视图解析器

DispatchServlet根据Controller中的逻辑视图命查找相应的视图实现默认的是orgspringframeworkwebservletviewInternalResourceViewResolver

实现相应视图

接下来按照上面的描述来建立一个最简单的Spring mvc项目

配置目录结构

>采用的是eclipse目录

>配置webxml

<?xml version= encoding=UTF?><webapp xmlns:xsi=instance

xmlns= xmlns:web=app__xsd

xsi:schemaLocation= app__xsd

id=WebApp_ID version=>

<displayname>spring_mvc_</displayname>

<! The front controller of this Spring Web application responsible for

handling all application requests >

<servlet>

<servletname>dispatcher</servletname>

<servletclass>orgspringframeworkwebservletDispatcherServlet</servletclass>

<loadonstartup></loadonstartup>

</servlet>

<! Map all requests to the DispatcherServlet for handling >

<servletmapping>

<servletname>dispatcher</servletname>

<urlpattern>*do</urlpattern>

</servletmapping>

<! Bootstraps the root web application context before servlet initialization >

<listener>

<listenerclass>orgsprntextContextLoaderListener</listenerclass>

</listener>

<welcomefilelist>

<welcomefile>indexjsp</welcomefile>

</welcomefilelist>

<! Reads request input using UTF encoding >

<filter>

<filtername>characterEncodingFilter</filtername>

<filterclass>orgspringframeworkwebfilterCharacterEncodingFilter</filterclass>

<initparam>

<paramname>encoding</paramname>

<paramvalue>UTF</paramvalue>

</initparam>

<initparam>

<paramname>forceEncoding</paramname>

<paramvalue>true</paramvalue>

</initparam>

</filter>

<filtermapping>

<filtername>characterEncodingFilter</filtername>

<urlpattern>/*</urlpattern>

</filtermapping></webapp>

由于只使用Springmvc所以没有配置ContextLoadListener

开发独立的业务逻辑并添加到配置文件中

package comspringservice;import monsloggingLog;import monsloggingLogFactory;public class UserService {

protected static Log log = LogFactorygetLog(UserServiceclass)

public boolean login(String username String passworld) {

(username + \t + passworld)

if (usernameequals(admin) && passworldequals(admin)) {

return true;

}

return false;

}}

因为只是为了演示思路所以业务逻辑很简单并在配置文件中进行配置

<?xml version= encoding=UTF?><beans xmlns=

xmlns:xsi=instance xmlns:p=

xmlns:context=

xmlns:mvc=

xsi:schemaLocation= mvcxsd

beansxsd

contextxsd>

<bean id=userService class=comspringserviceUserService></bean></beans>

添加web请求入口

<%@ page language=java contentType=text/html; charset=UTF

pageEncoding=UTF%><!DOCTYPE html PUBLIC //WC//DTD HTML Transitional//EN ><html><head><meta httpequiv=ContentType content=text/html; charset=UTF><title>LOGIN</title></head><body>

<form action=logindo method=post>

用户名 <input type=text name=username id=username /> <br> 密码

<input type=text name=password id=password /> <br> <input

type=submit value=提交 />

</form></body></html>

我的是logindo注意不是/logindo

添加HandlerMapping

<! 定义映射 >

<bean id=handlerMapping

class=orgspringframeworkwebservlethandlerBeanNameUrlHandlerMapping></bean>

采用的是BeanNameUrlHandlerMapping这是Springmvc默认的也可以不配置要求是需要保证视图模板请求路径与容器中的HandlerBeanName一致

实现对应的Controller并添加到配置文件中

LoginController

package ntroller;import javaxservlethttpHttpServletRequest;import javaxservlethttpHttpServletResponse;import monsloggingLog;import monsloggingLogFactory;import orgspringframeworkwebservletModelAndView;import orgspringframeworkwebservletmvcAbstractController;import comspringserviceUserService;public class LoginController extends AbstractController {

protected static Log log = LogFactorygetLog(LoginControllerclass)

private UserService userService;

public UserService getUserService() {

return userService;

}

public void setUserService(UserService userService) {

thisuserService = userService;

}

@Override

protected ModelAndView handleRequestInternal(HttpServletRequest request

HttpServletResponse response) throws Exception {

ModelAndView mv = new ModelAndView()

boolean isSuccess = userServicelogin(requestgetParameter(username

requestgetParameter(password))

Systemoutprintln(isSuccess)

mvaddObject(login isSuccess)

if (isSuccess) {

mvsetViewName(success

} else {

mvsetViewName(failed

}

Systemoutprintln(mvgetViewName())

return mv;

}}

配置文件

<! 定义控制器 >

<bean name=/logindo class=ntrollerLoginController>

<property name=userService ref=userService></property>

</bean>

注意我请求路径是logindo所以过根据BeanNameUrlHandlerMapping所以配置文件中的也是/logindo如果请求路径是/logindo将会出现错误

添加视图解析器

<! 定义ViewReSover >

<bean id=viewResolver

class=orgspringframeworkwebservletviewInternalResourceViewResolver>

<property name=prefix value=/WEBINF/views/></property>

<property name=suffix value=jsp></property>

</bean>

实现相应视图

<%@ page language=java contentType=text/html; charset=UTF

pageEncoding=UTF%><html><head><meta httpequiv=ContentType content=text/html; charset=UTF><title>Insert title here</title></head><body>Hello Spring MVC<br>欢迎${login}登录成功</body></html>

到此一个简单的Springmvc项目就搭建成功了不过要注意的是这七个步骤并不是一定要按照这个顺序顺序可以有变动但是开发过程中记住这七个步骤思路将会更加清晰

上一篇:java聊天窗口的实现

下一篇:java调用天气预报调用代码