這裏簡單的使用一下Spring 4MVC框架。Spring 4MVC相較於Struts2,避免了Struts2的種種缺點,在功能及代碼效率上進行了增強與優化與增強。這裏使用Spring 4MVC實現簡單的登錄功能【基於註解】。開發環境是:Ecplise + jdk1.7 +tomcat7.0 + Spring4MVC
- 首先下載Spring 4MVC所必須的jar包:官方網站是:spring官方網站
- 新建web項目,將下載的jar包導入
- 在web.xml中配置spring 4mvc的核心控制器DispatcherServlet,它是處理request請求的核心,它的真正父類是HttpServlet
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.spring</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
上面的配置實現的效果和Struts2中的核心過濾器實現的效果是相同的,URL中以.spring爲後綴訪問服務器,就把這個請求交給DispatcherServlet對象來處理,Spring 4MVC框架還要在項目的WEB-INF文件夾中找springMVC-servlet.xml配置文件,所有的bean和配置定義都要在這個文件中
- 新建springMVC-servle.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 掃描包名爲controller包下的類 -->
<context:component-scan base-package="controller" />
<!-- 它的功能就是默認訪問的是 / 根路徑 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" />
</beans>
<context:component-scan base-package="b" />的作用是在那個包中掃描帶有@Controller的控制層java文件,如果找到,則說明該java是控制層,並參與處理request
和response對象
- 新建相關的jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<!DOCTYPE>
<html>
<head></head>
<body>
<form action="login.spring" method="post">
username:<input type="text" name="username"/><br>
password:<input type="password" name="password"><br>
<input type="submit" value="提交"/><br>
</form>
</body>
</html>
登錄成功的頁面<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登錄成功</title>
</head>
<body>
ok page,恭喜:${username}
</body>
</html>
- 新建控制層文件
這一層是最關鍵的組件:
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @Controller註解代表本類是Controller控制層
* @author acer
*/
@Controller
public class Login {
/**
* @RequestMapping("/login") 該註解的作用是通過指定的url來訪問本方法
* @RequestParam("username") 該註解的作用是根據參數名從url中取值,url中同名的參數將自動提交給控制層方法中同名的參數,
*可以不用@RequestParam("username")註解
* @param model 它的作用相當於往request對象中放入數據
* @return
*/
/**
* @RequestMapping(value = "/login",method=RequestMethod.GET)的作用是設置方法的名稱,並且限制提交的方式爲GET方法,同理可以限制爲POST,也可以不限 * 這樣,不論是什麼提交方式都可以調用。 */@RequestMapping(value = "/login1",method=RequestMethod.GET) public String login(@RequestParam("username")String username, @RequestParam("password")String password,Model model){ if(username.equals("pangjianfei") && password.equals("liulin")) { model.addAttribute("username", username); return "ok.jsp"; }else{ return "fail.jsp"; } }} 部署並運行,可以看到運行結果,這個是最簡單的登錄。