`
阅读更多

spring mvc +  ibatis + Oracle  + ajax 轻量级架构搭建及详解 研究(后续接着跟进)

 

1、新建Web Project 工程,编辑web.xml文件

写道
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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">
<!--配置Sring MVC的核心控制器DispatcherServlet -->
<servlet>
<servlet-name>dispatcherServlet</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>
<!-- 为DispatcherServlet建立映射 -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:/log4j.properties</param-value>
</context-param>

<!-- 配置log4j.xml监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

 2、添加spring mvc 架构所需要的JAR包

 3、设置spring-data.xml、spring-servlet.xml文件

      spring-data.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<!-- 获取数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${db.dirverClass}</value>
</property>
<property name="url">
<value>${db.url}</value>
</property>
<property name="username">
<value>${db.username}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
</bean>
</beans>

  spring-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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:config.properties</value>
</property>
</bean>

<!-- 定义映射 -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="helloWorld.html">helloWorldAction</prop>
<prop key="userAction.html">userAction</prop>
</props>
</property>
</bean>

<bean id="userDao" class="com.examp.dao.UserDao">
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- 定义视图 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
</bean>

<!-- 定义控制器 -->
<bean id="helloWorldAction" class="com.examp.ch23.HelloWorldAction">
<property name="helloWorld">
<value>${helloWorld}</value>
</property>
<property name="helloWorld1">
<value>${name}</value>
</property>
<property name="viewPage">
<value>${toUrl}</value>
</property>
</bean>

<!-- 根据请求参数决定方法 userAction.html?action=toDetail -->
<bean id="userAction" class="com.examp.ch23.UserAction">
<property name="dao">
<ref bean="userDao"/>
</property>
<property name="methodNameResolver">
<bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<!-- 指定参数名为action -->
<property name="paramName" value="action" />
</bean>
</property>
</bean>
</beans>

 4、日志配置文件 log4j.properties

################ FATAL, ERROR, WARN, INFO, DEBUG  
log4j.rootLogger=WARN,stdout,D,E  
  
### stdout ###  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target=System.out  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern= %d{ABSOLUTE} %5p %c{1}\:%L - %m%n  
  
### logFile ###  
### save error to another file ###  
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.D.File=D\:/logs/info.log  
log4j.appender.D.Append=true  
#error only in this file  
log4j.appender.D.Threshold =INFO  
log4j.appender.D.layout=org.apache.log4j.PatternLayout  
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%t\:%r] - [%p]  %m%n  

 5、配置文件 config.properties 

helloWorld=Good Luck!
name=\u738B\u4E94
toUrl=/jsp/MyJsp.jsp
db.dirverClass= oracle.jdbc.driver.OracleDriver
db.url= jdbc:oracle:thin:@192.168.11.110:1521:ebank
db.username=ebank
db.password=ebank

 6、编写实体类 UserPO.java

package com.examp.po;

import java.io.Serializable;

public class UserPO implements Serializable {
	
	private String id;
	private String name;
	private String password;
	private int type;
	private String email;
	private String phone;
	private int sex;
	private String qq;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public int getSex() {
		return sex;
	}
	public void setSex(int sex) {
		this.sex = sex;
	}
	public String getQq() {
		return qq;
	}
	public void setQq(String qq) {
		this.qq = qq;
	}
}

 7、添加数据处理类  UserDao.java

package com.examp.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;

import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.examp.po.UserPO;

public class UserDao extends JdbcDaoSupport {

	 public Collection<UserPO> doquery() {  
	        String sql = "SELECT T.ID,T.NAME,T.EMAIL,T.SEX FROM T_USER T";  
	        return super.getJdbcTemplate().query(sql, new RowMapper() {  
				public Object mapRow(ResultSet rs, int num) throws SQLException{
					UserPO user = new UserPO();
					user.setId(rs.getString("ID"));
					user.setName(rs.getString("NAME"));
					user.setEmail(rs.getString("EMAIL"));
					user.setSex(rs.getInt("SEX"));
				  return user;  
				}  
	        });  
	  }
	 
	 
	 public Collection<UserPO> getUserByID(String id) {  
	        String sql = "SELECT T.ID,T.NAME,T.EMAIL,T.SEX FROM T_USER T WHERE T.ID='"+id+"'";  
	        return super.getJdbcTemplate().query(sql, new RowMapper() {  
				public Object mapRow(ResultSet rs, int num) throws SQLException{
					UserPO user = new UserPO();
					user.setId(rs.getString("ID"));
					user.setName(rs.getString("NAME"));
					user.setEmail(rs.getString("EMAIL"));
					user.setSex(rs.getInt("SEX"));
				  return user;  
				}  
	        });  
	  }
}

 8、业务处理类 HelloWorldAction.java、UserAction.java

package com.examp.ch23;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloWorldAction implements Controller{
	
	private static final Log logger = LogFactory.getLog(HelloWorldAction.class);  
	  
	private String helloWorld;
	private String viewPage;
	private String helloWorld1;
	
	public ModelAndView handleRequest(HttpServletRequest req,
			HttpServletResponse res) throws Exception {
		System.out.println("是否进入。。。");
		logger.warn("进入HelloWorldAction 包...");
		Map<String,String> model = new HashMap<String,String>();
		model.put("helloWorld", getHelloWorld());
		model.put("helloWorld1", getHelloWorld1());
		return new ModelAndView(getViewPage(),model);
	}
	
	public String getHelloWorld() {
		return helloWorld;
	}

	public void setHelloWorld(String helloWorld) {
		this.helloWorld = helloWorld;
	}

	public String getViewPage() {
		return viewPage;
	}

	public void setViewPage(String viewPage) {
		this.viewPage = viewPage;
	}
	
	public String getHelloWorld1() {
		return helloWorld1;
	}

	public void setHelloWorld1(String helloWorld1) {
		this.helloWorld1 = helloWorld1;
	}
}

 

package com.examp.ch23;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.examp.dao.UserDao;
import com.examp.po.UserPO;

//public class UserAction implements Controller{
public class UserAction extends MultiActionController{
	private static final Log logger = LogFactory.getLog(UserAction.class);  
	private UserDao dao; 
	
	
	public ModelAndView list(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		logger.warn("UserAction list 方法...");
		Map<String,Object> model = new HashMap<String,Object>();
		
		Collection<UserPO> list = dao.doquery();
		List<UserPO> users = new ArrayList<UserPO>();
		
		for (UserPO userPO : list) {  
			UserPO user = new UserPO();  
            user.setId(userPO.getId());  
            user.setName(userPO.getName());  
            user.setSex(userPO.getSex());
            user.setEmail(userPO.getEmail());  
            users.add(user);  
        }  
		model.put("list", users);
		return new ModelAndView("/jsp/userList.jsp",model);
	}
	
	public ModelAndView detail(HttpServletRequest req,HttpServletResponse res) throws Exception{
		String id = req.getParameter("id");
		Collection<UserPO> list = dao.getUserByID(id);
		logger.warn("UserAction detail 方法...");
		List<UserPO> users = new ArrayList<UserPO>();
		for (UserPO userPO : list) {  
			UserPO user = new UserPO();  
            user.setId(userPO.getId());  
            user.setName(userPO.getName());  
            user.setSex(userPO.getSex());
            user.setEmail(userPO.getEmail());  
            users.add(user);  
        }
		Map<String,Object> model = new HashMap<String,Object>();
		model.put("list", users);
		return new ModelAndView("/jsp/userDetail.jsp",model);
	}
	
	public UserDao getDao() {
		return dao;
	}

	public void setDao(UserDao dao) {
		this.dao = dao;
	}
}

 9、编辑jsp页面 MyJsp.jsp、userDetail.jsp、userList.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'MyJsp.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
<%
String str = (String)request.getAttribute("helloWorld");
String param = (String)request.getAttribute("param");
%>
  <body>
    This is my JSP page. <%=str %>${helloWorld1}<br>
    
    ${helloWorld} + 
  </body>
</html>

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.examp.po.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'MyJsp.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
<%
String str = (String)request.getAttribute("helloWorld");
//List list = (List)request.getAttribute("list");
%>
  <body>
  <div>用户个人信息</div>
   <table>
    	<tr>
    		<td>
    			用户ID
    		</td>
    		<td>
    			用户名
    		</td>
    		<td>
    			性别
    		</td>
    		<td>
    			邮件
    		</td>
    	</tr>
	    <c:forEach var="user" items="${list}">
	    	<tr>
	    		<td><a href="/ch23/userAction.html?action=detail&id=${user.id}">${user.id}</a></td>
	    		<td>${user.name}</td>
	    		<td>
	    			<c:if test="${user.sex == 0}">
	    				保密
	    			</c:if>
	    			<c:if test="${user.sex == 1}">
	    				男
	    			</c:if>
	    			<c:if test="${user.sex == 2}">
	    				女
	    			</c:if>
	    		</td>
	    		<td>${user.email}</td>
	    	</tr>
	    </c:forEach>
    </table>
  </body>
</html>

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.examp.po.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'MyJsp.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
<%
String str = (String)request.getAttribute("helloWorld");
//List list = (List)request.getAttribute("list");
%>
  <body>
    <%-- This is my JSP page. <%=str %><br> --%>
   <%--  <%
    	for(int i = 0; i < list.size();i++){
    		UserPO user = (UserPO)list.get(i);
    %>
    <%=user.getName()%><br/>
    <%	}
    %> --%>
    <table>
    	<tr>
    		<td>
    			用户ID
    		</td>
    		<td>
    			用户名
    		</td>
    		<td>
    			性别
    		</td>
    		<td>
    			邮件
    		</td>
    	</tr>
	    <c:forEach var="user" items="${list}">
	    	<tr>
	    		<td><a href="/ch23/userAction.html?action=detail&id=${user.id}">${user.id}</a></td>
	    		<td>${user.name}</td>
	    		<td>
	    			<c:if test="${user.sex == 0}">
	    				保密
	    			</c:if>
	    			<c:if test="${user.sex == 1}">
	    				男
	    			</c:if>
	    			<c:if test="${user.sex == 2}">
	    				女
	    			</c:if>
	    		</td>
	    		<td>${user.email}</td>
	    	</tr>
	    </c:forEach>
    </table>
  </body>
</html>

 10、项目结构图

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics