基于IDEA的SSH项目之二:配置Spring一

说明:因为本人是初学者,所以不是小白的掠过,写的太啰嗦了,你没有这个耐心看完的。观看本文之前,请先看前文 《基于IDEA的SSH项目之一:创建web项目

一、下载相关 Jar包。

1、使用spring-framework-3.2.0.RELEASE ,下载地址见:http://repo.spring.io/libs-release-local/org/springframework/spring/。

2、下载完成后,解压后libs文件夹即时需要的Jar包。(不喜欢sources和javadoc的小伙伴可以去除这些包)

3、下载其他必须的Jar包。包括数据库驱动、JSTL标签等。如下图,在WEB-INF目录下建一个lib文件夹,可以将这些包放置其中。

二、将Jar包导入到项目中

1、打开项目配置窗口,选择Libraries,中间一栏中点击“+”按钮,弹出设置Jar库的名称,填写lib。确定后弹出选择Module对话框(这个Jar库需要应用到哪个Module中),暂时只有一个Modulu:SpringPro,选中OK即可。

2、此时项目配置窗口的右边栏是一个选择Jar包的界面,点击Attach Classes...,浏览到刚才新建的lib文件夹,选中所有的Jar,导入进来。

3、按照同样的步骤,将Spring的Jar包也导入进来。这个Jar库取名叫做Spring。

4、切换到Modules配置项,中间栏选中SpringPro,右边栏选中Dependencies,会发现刚才配置的Jar库已经引入到了Module的依赖关系中。

5、仍然是这个页面,中间一栏选中Web,右边栏选中Web Settings,此时会发现Web Settings中的中间也多了刚才配置的Jar库。将这两个Jar默认的Do not package 改为Copy files to,复制到WEB-INF/lib下。

三、编写Spring配置文件

1、在src目录下新建一个Spring的配置文件applicationContext.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"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.1.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
    

</beans>
2、此时打开项目配置,选中Module配置项,中间一栏在SpringPro下自动出现了Srping(如果没有出现,没有关系,选中SpringPro右键,new,Spring即可)。

3、在右边栏中点击New File Set..,在弹出的对话框中选择刚才创建的applicationContext.xml即可。

4、此时的项目目录结构如下所示。(PS:此时如果去启动Tomcat服务,还是可以正常启动的)(PS:如果你要深究的话,我可以告诉你,目前这个lib文件夹中总共有66个jar包,包括Spring的sources和javadoc)


四、配置Spring容器。

1、修改web.xml文件。修改之前是这样子的。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">
    
</web-app>
修改之后变为这样子。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">
    <!--①从类路径下加载Spring配置文件,classpath关键字特指在类路径下加载-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <!--② 负责启动Spring容器的监听器,他将引用处的①上下文参数获得的Spring配置文件-->
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <!--③ 声明一个servlet,让Spring也拥有一个配置文件,并且名字为servlet-name-servlet.xml。因此在此处,必须有一个叫 mvc-dispatcher-servlet.xml 的文件放置于WEB-INF下-->
    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <!--④ 对③处定义的servlet的URL路径进行定义-->
    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
</web-app>


2、在WEB-INF目录下编写mvc-dispatcher-servlet.xml文件。这里的<bean/>内容之后再解释。
<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.1.xsd">


    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

3、此时如果能够正常启动Tomcat服务,说明这一段的配置都没有问题了。


4、到此时位置,整个项目的程序包见: http://download.csdn.net/detail/przzl/7268197
五、页面跳转
1、先来模拟一个用户登录的过程,需要用到两个页面,登录页面login.jsp和登录成功的页面main.jsp。并将他们放置在WEB-INF下的jsp文件夹中(建一个jsp文件夹),页面分别为。login.jsp:(注意form的action的写法)
<%@ page import="org.apache.commons.lang3.StringUtils" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
    String error = (String)request.getAttribute("error");
    String errorMsg = (String)request.getAttribute("errorMsg");
%>
<html>
<head>
    <title>网站登录</title>
</head>
<body>
<% if(StringUtils.isNotEmpty(error)) { %>
<font color="red"><%=errorMsg%></font>
<% } %>
<form action='/admin/loginCheck.html' method="post">
    用户名:
    <input type="text" name="userName"><br>
    密 码:
    <input type="password" name="password"><br>
    <input type="submit" value="登录"/>
    <input type="reset" value="重置"/>
</form>
</body>
</html>
main.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>网站主页</title>
</head>
<body>
欢迎您进入网站主页!
</body>
</html>

同时更改index.jsp页面让其自动跳转到login.jsp去。(注意跳转地址的写法)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head><title>Simple jsp page</title>
    <script>
    window.location.href = "/admin/login.html";
    </script>
  </head>
  <body>
    <h1>这是一个IDEA WEB项目</h1>
  </body>
</html>

2、显然,目前这样子是无法正常跳转的,需要使用到SpringMVC模式中的Controller控制器来实现跳转。我们之前在web.xml中已经定义了由DispatcherServlet来完成。因此在这里建一个LoginController.java的Controller控制器来实现跳转。由于还没有引入数据库,这里暂时先写死用户名为admin,密码为123456,其他都是不合法的用户名及密码。
package com.hzb.web;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
//① 标注成为一个SpringMVC的Controller
@RequestMapping(value = "/admin")
public class LoginController {
    @RequestMapping(value = "/login.html")
    //② 负责处理 /admin/login.html 的请求(需要加上类的映射请求路径),与index.jsp中的跳转目标保持一致
    public String loginPage() {
        return "login";
    }
    @RequestMapping(value = "/loginCheck.html")
    //② 负责处理 /admin/loginCheck.html 的请求 ,与login.jsp页面form表单的action保持一致
    public ModelAndView loginCheck(HttpServletRequest request,HttpServletRequest response) {
        if ("admin".equals(request.getParameter("userName")) && "123456".equals(request.getParameter("password"))) {
            return new ModelAndView("main");
        } else {
            return new ModelAndView("login").addObject("error", "error").addObject("errorMsg", "用户名或密码错误");
        }
    }
}

3、在mvc-dispatcher-servlet.xml文件中需要申明该控制器,由于LoginController.java已经使用了@Controller,@RequestMapping等注解,因此只需要mvc-dispatcher-servlet.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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.1.xsd">


    <!-- 扫描web包,应用Spring的注解 -->
    <context:component-scan base-package="com.hzb.web"/>


    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>
4、此时启动服务后,自动跳转到登陆页面,只有当用户名和密码分别为admin和123456时,登陆成功,其他情况都是登陆失败。
5、此时项目完整的程序包,见: http://download.csdn.net/detail/przzl/7261983


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值