spring3.0支持restful实例
spring3.0以及restful,项目采用SPRING3.0+HIBERNATE2.5。数据库是oracle只有一个表。
view plaincopy to clipboardprint?
create table LMDZ??
(??
? KH_NUM VARCHAR2(20),??
? LM_NUM NUMBER(2)??
);?
create table LMDZ
(
? KH_NUM VARCHAR2(20),
? LM_NUM NUMBER(2)
);
首先在eclipse下新建web工程。web.xml文件配置如下:
view plaincopy to clipboardprint?
<?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">??
??? <!--??
??????? 该servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,如原来访问??
??????? http://localhost/foo.css ,现在http://localhost/static/foo.css??
??? -->??
??? <servlet-mapping>??
??????? <servlet-name>default</servlet-name>??
??????? <url-pattern>/static/*</url-pattern>??
??? </servlet-mapping>??
??? <servlet>??
??????? <servlet-name>demorestsms</servlet-name>??
??????? <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>??
??????? <load-on-startup>1</load-on-startup>??
??? </servlet>??
?? <!--??
??????? Key of the system property that should specify the root directory of this?
??????? web app. Applied by WebAppRootListener or Log4jConfigListener.??
??? -->??
??? <context-param>??
??????? <param-name>webAppRootKey</param-name>??
??????? <param-value>demorestsms.root</param-value>??
??? </context-param>??
?
??? <!--??
??????? Location of the Log4J config file, for initialization and refresh checks.??
??????? Applied by Log4jConfigListener.??
??? -->??
??? <context-param>??
??????? <param-name>log4jConfigLocation</param-name>??
??????? <param-value>/WEB-INF/classes/log4j.properties</param-value>??
??? </context-param>??
?
??? <!--??
??????? - Location of the XML file that defines the root application context.??
??????? - Applied by ContextLoaderServlet.??
??????? -??
??????? - Can be set to:??
??????? - "/WEB-INF/applicationContext-hibernate.xml" for the Hibernate implementation,??
??????? - "/WEB-INF/applicationContext-jpa.xml" for the JPA one, or??
??????? - "/WEB-INF/applicationContext-jdbc.xml" for the JDBC one.??
??? -->??
??? <context-param>??
??????? <param-name>contextConfigLocation</param-name>??
?
??????? <param-value>/WEB-INF/applicationContext.xml</param-value>??
??????? <!--??
??????? <param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>??
??????? <param-value>/WEB-INF/applicationContext-jpa.xml</param-value>??
??????? -->??
?
??????? <!--??
??????????????? To use the JPA variant above, you will need to enable Spring load-time??
??????????????? weaving in your server environment. See PetClinic's readme and/or??
??????????????? Spring's JPA documentation for information on how to do this.??
??????? -->??
??? </context-param>??
??? <!--??
??????? - Configures Log4J for this web app.??
??????? - As this context specifies a context-param "log4jConfigLocation", its file path??
??????? - is used to load the Log4J configuration, including periodic refresh checks.??
??????? -??
??????? - Would fall back to default Log4J initialization (non-refreshing) if no special??
??????? - context-params are given.??
??????? -??
??????? - Exports a "web app root key", i.e. a system property that specifies the root??
??????? - directory of this web app, for usage in log file paths.??
??????? - This web app specifies "petclinic.root" (see log4j.properties file).??
??? -->??
??? <!-- Leave the listener commented-out if using JBoss -->??
??? <!--??
??? <listener>??
??????? <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>??
??? </listener>??
??? -->??
?
??? <!--??
??????? - Loads the root application context of this web app at startup,??
??????? - by default from "/WEB-INF/applicationContext.xml".??
??????? - Note that you need to fall back to Spring's ContextLoaderServlet for?
??????? - J2EE servers that do not follow the Servlet 2.4 initialization order.??
??????? -??
??????? - Use WebApplicationContextUtils.getWebApplicationContext(servletContext)??
??????? - to access it anywhere in the web application, outside of the framework.??
??????? -??
??????? - The root context is the parent of all servlet-specific contexts.??
??????? - This means that its beans are automatically available in these child contexts,??
??????? - both for getBean(name) calls and (external) bean references.??
??? -->??
??? <listener>??
??????? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>??
??? </listener>??
?
??? <!--??
??????? - Maps the petclinic dispatcher to "*.do". All handler mappings in??
??????? - petclinic-servlet.xml will by default be applied to this subpath.??
??????? - If a mapping isn't a /* subpath, the handler mappings are considered??
??????? - relative to the web app root.??
??????? -??
??????? - NOTE: A single dispatcher can be mapped to multiple paths, like any servlet.??
??? -->??
??? <servlet-mapping>??
??????? <servlet-name>zszqrestsms</servlet-name>??
??????? <url-pattern>/</url-pattern>??
??? </servlet-mapping>??
?
??? <session-config>??
??????? <session-timeout>10</session-timeout>??
??? </session-config>??
?
??? <welcome-file-list>??
??????? <!-- Redirects to "welcome.htm" for dispatcher handling -->??
??????? <welcome-file>index.jsp</welcome-file>??
??? </welcome-file-list>??
??????
??? <!--error-page>??
??????? <exception-type>java.lang.Exception</exception-type>??
??????? <location>/WEB-INF/jsp/uncaughtException.jsp</location>??
??? </error-page-->??
??????
??? <!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法 -->?????
??? <filter>?????
??????? <filter-name>HiddenHttpMethodFilter</filter-name>?????
??????? <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>?????
??? </filter>?????
?????????
??? <filter-mapping>?????
??????? <filter-name>HiddenHttpMethodFilter</filter-name>?????
??????? <servlet-name>demorestsms</servlet-name>?????
??? </filter-mapping>??
?
</web-app>?
<?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">
? ?<!--
??该servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,如原来访问
??http://localhost/foo.css ,现在http://localhost/static/foo.css
?-->
?<servlet-mapping>
??<servlet-name>default</servlet-name>
??<url-pattern>/static/*</url-pattern>
?</servlet-mapping>
?<servlet>
??<servlet-name>demorestsms</servlet-name>
??<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
??<load-on-startup>1</load-on-startup>
?</servlet>
?? <!--
??????? Key of the system property that should specify the root directory of this
??????? web app. Applied by WebAppRootListener or Log4jConfigListener.
??? -->
??? <context-param>
??????? <param-name>webAppRootKey</param-name>
??????? <param-value>demorestsms.root</param-value>
??? </context-param>
??? <!--
??????? Location of the Log4J config file, for initialization and refresh checks.
??????? Applied by Log4jConfigListener.
??? -->
??? <context-param>
??????? <param-name>log4jConfigLocation</param-name>
??????? <param-value>/WEB-INF/classes/log4j.properties</param-value>
??? </context-param>
??? <!--
??????? - Location of the XML file that defines the root application context.
??????? - Applied by ContextLoaderServlet.
??????? -
??????? - Can be set to:
??????? - "/WEB-INF/applicationContext-hibernate.xml" for the Hibernate implementation,
??????? - "/WEB-INF/applicationContext-jpa.xml" for the JPA one, or
??????? - "/WEB-INF/applicationContext-jdbc.xml" for the JDBC one.
??? -->
??? <context-param>
??????? <param-name>contextConfigLocation</param-name>
??????? <param-value>/WEB-INF/applicationContext.xml</param-value>
??????? <!--
??????? <param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>
??????? <param-value>/WEB-INF/applicationContext-jpa.xml</param-value>
??????? -->
??????? <!--
??????????????? To use the JPA variant above, you will need to enable Spring load-time
??????????????? weaving in your server environment. See PetClinic's readme and/or
??????????????? Spring's JPA documentation for information on how to do this.
??????? -->
??? </context-param>
??? <!--
??????? - Configures Log4J for this web app.
??????? - As this context specifies a context-param "log4jConfigLocation", its file path
??????? - is used to load the Log4J configuration, including periodic refresh checks.
??????? -
??????? - Would fall back to default Log4J initialization (non-refreshing) if no special
??????? - context-params are given.
??????? -
??????? - Exports a "web app root key", i.e. a system property that specifies the root
??????? - directory of this web app, for usage in log file paths.
??????? - This web app specifies "petclinic.root" (see log4j.properties file).
??? -->
??? <!-- Leave the listener commented-out if using JBoss -->
??? <!--
??? <listener>
??????? <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
??? </listener>
??? -->
??? <!--
??????? - Loads the root application context of this web app at startup,
??????? - by default from "/WEB-INF/applicationContext.xml".
??????? - Note that you need to fall back to Spring's ContextLoaderServlet for
??????? - J2EE servers that do not follow the Servlet 2.4 initialization order.
??????? -
??????? - Use WebApplicationContextUtils.getWebApplicationContext(servletContext)
??????? - to access it anywhere in the web application, outside of the framework.
??????? -
??????? - The root context is the parent of all servlet-specific contexts.
??????? - This means that its beans are automatically available in these child contexts,
??????? - both for getBean(name) calls and (external) bean references.
??? -->
??? <listener>
??????? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
??? </listener>
??? <!--
??????? - Maps the petclinic dispatcher to "*.do". All handler mappings in
??????? - petclinic-servlet.xml will by default be applied to this subpath.
??????? - If a mapping isn't a /* subpath, the handler mappings are considered
??????? - relative to the web app root.
??????? -
??????? - NOTE: A single dispatcher can be mapped to multiple paths, like any servlet.
??? -->
??? <servlet-mapping>
??????? <servlet-name>zszqrestsms</servlet-name>
??????? <url-pattern>/</url-pattern>
??? </servlet-mapping>
??? <session-config>
??????? <session-timeout>10</session-timeout>
??? </session-config>
??? <welcome-file-list>
??????? <!-- Redirects to "welcome.htm" for dispatcher handling -->
??????? <welcome-file>index.jsp</welcome-file>
??? </welcome-file-list>
???
??? <!--error-page>
??????? <exception-type>java.lang.Exception</exception-type>
??????? <location>/WEB-INF/jsp/uncaughtException.jsp</location>
??? </error-page-->
???
??? <!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法 -->??
?<filter>??
???? <filter-name>HiddenHttpMethodFilter</filter-name>??
???? <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>??
?</filter>??
???
?<filter-mapping>??
???? <filter-name>HiddenHttpMethodFilter</filter-name>??
???? <servlet-name>demorestsms</servlet-name>??
?</filter-mapping>
</web-app>
?在WEB-INF下面的applicationContext.xml文件如下:
view plaincopy to clipboardprint?
<?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"?
? xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"?
? xmlns:p="http://www.springframework.org/schema/p"?
? 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??
??? http://www.springframework.org/schema/tx??
??? http://www.springframework.org/schema/tx/spring-tx-3.0.xsd??
??? http://www.springframework.org/schema/jdbc??
??? http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">???
?????<bean id="propertyConfigurer"?
????????? />??
??????
??? <bean id="dataSource"?
????????? />??
??????
??? <!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->??
??? <!-- Hibernate SessionFactory -->??
??? <bean id="sessionFactory" p:mappingResources="zszqlmdz.hbm.xml">??
??????? <property name="hibernateProperties">??
??????????????? <props>??
??????????????????????? <prop key="hibernate.dialect">${hibernate.dialect}</prop>??
??????????????????????? <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>??
??????????????????????? <prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop>??
??????????????? </props>??
??????? </property>??
??????? <property name="eventListeners">??
??????????????? <map>??
??????????????????????? <entry key="merge">??
??????????????????????????????? <bean autowire="byName"/>??
</beans>?
<?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"
? xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
? xmlns:p="http://www.springframework.org/schema/p"
? 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
??? http://www.springframework.org/schema/tx
??? http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
??? http://www.springframework.org/schema/jdbc
?http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
???
??? <bean id="propertyConfigurer"
????????? />
???
??? <bean id="dataSource"
????????? />
???
??? <!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
??? <!-- Hibernate SessionFactory -->
??? <bean id="sessionFactory" p:mappingResources="zszqlmdz.hbm.xml">
??????? <property name="hibernateProperties">
??????????????? <props>
??????????????????????? <prop key="hibernate.dialect">${hibernate.dialect}</prop>
??????????????????????? <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
??????????????????????? <prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop>
??????????????? </props>
??????? </property>
??????? <property name="eventListeners">
??????????????? <map>
??????????????????????? <entry key="merge">
??????????????????????????????? <bean autowire="byName"/>
</beans>
?
在WEB-INF下面的demorestsms-servlet.xml文件如下:
view plaincopy to clipboardprint?
<?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"?
? xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"?
? xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"?
???
? 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??
?????????? http://www.springframework.org/schema/tx??
?????????? http://www.springframework.org/schema/tx/spring-tx-3.0.xsd??
?????????? http://www.springframework.org/schema/jdbc??
?????????? http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">??
?
??? <!--??
??????? - The controllers are autodetected POJOs labeled with the @Controller annotation.??
??? -->??
??? <context:component-scan base-package="com.cssweb.zszq.lmdz.web"/>??
?
??? <!--??
??????? - The form-based controllers within this application provide @RequestMapping???
??????? - annotations at the type level for path mapping URLs and @RequestMapping???
??????? - at the method level for request type mappings (e.g., GET and POST).???
??????? - In contrast, ClinicController - which is not form-based - provides???
??????? - @RequestMapping only at the method level for path mapping URLs.??
??????? -??
??????? - DefaultAnnotationHandlerMapping is driven by these annotations and is???
??????? - enabled by default with Java 5+.??
??? -->??
??? <bean />??
??? <!--??
??????? - This bean processes annotated handler methods, applying PetClinic-specific PropertyEditors??
??????? - for request parameter binding. It overrides the default AnnotationMethodHandlerAdapter.??
??? -->??
??? <bean p:prefix="/WEB-INF/jsp/"?
??????????? p:suffix=".jsp"/>??
?
??? <!--??
??????? - Message source for this context, loaded from localized "messages_xx" files.??
??????? - Could also reside in the root application context, as it is generic,??
??????? - but is currently just used within PetClinic's web tier.??
??? -->??
??? <bean id="messageSource" 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"
? xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"
? xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
?
? 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
?????????? http://www.springframework.org/schema/tx
?????????? http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
?????????? http://www.springframework.org/schema/jdbc
???? http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
?<!--
??- The controllers are autodetected POJOs labeled with the @Controller annotation.
?-->
?<context:component-scan base-package="com.cssweb.zszq.lmdz.web"/>
?<!--
??- The form-based controllers within this application provide @RequestMapping
??- annotations at the type level for path mapping URLs and @RequestMapping
??- at the method level for request type mappings (e.g., GET and POST).
??- In contrast, ClinicController - which is not form-based - provides
??- @RequestMapping only at the method level for path mapping URLs.
??-
??- DefaultAnnotationHandlerMapping is driven by these annotations and is
??- enabled by default with Java 5+.
?-->
?<bean />
?<!--
??- This bean processes annotated handler methods, applying PetClinic-specific PropertyEditors
??- for request parameter binding. It overrides the default AnnotationMethodHandlerAdapter.
?-->
?<bean
??- will be mapped to "/WEB-INF/jsp/vets.jsp".
?-->
?<bean p:prefix="/WEB-INF/jsp/"
???p:suffix=".jsp"/>
?<!--
??- Message source for this context, loaded from localized "messages_xx" files.
??- Could also reside in the root application context, as it is generic,
??- but is currently just used within PetClinic's web tier.
?-->
?<bean id="messageSource" + lmdz.getLmNum() + "',lmname:'" + lmdz.getLmName() + "',lmstate:'" + lmdz.getState() + "'}";??
??????????????? i++;??
??????????????? if (i != lm.size() - 1) {??
???????????????????? json += ",";??
??????????????? }??
??????????? }??
??????????? json += "]}";??
??????????? msg.append("{"msg":""+json+""}");??
??????? }??
??????? else {??
??????????? msg.append("{"msg":"帐号不存在"}");??
??????? }??
??????? printData(response, msg);??
??? }??
??????
??? @RequestMapping(value = "/{fundid}/{no}", method = RequestMethod.POST)??
??? public void save(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid,???
??????????? @PathVariable("no") String no) throws Exception {??
??????? System.out.println(fundid + ">>>>>>>>>>save>>>>>>>>>>>>>>"+no);??
??????? StringBuilder msg = new StringBuilder();??
??????? this.clinic.save(fundid, no.split(","));??
??????? msg.append("{"msg":"成功"}");??
??????? printData(response, msg);??
??? }??
??????
??? @RequestMapping(value = "/{fundid}/{no}", method = RequestMethod.PUT)??
??? public void update(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid,???
??????????? @PathVariable("no") String no) throws Exception {??
??????? System.out.println(fundid + ">>>>>>>>>>update>>>>>>>>>>>>>>"+no);??
??????? StringBuilder msg = new StringBuilder();??
??????? int i = this.clinic.updateTelById(fundid, no);??
??????? if(i>0) {??
??????????? msg.append("{"msg":"成功"}");??
??????? }??
??????? msg.append("{"msg":"失败"}");??
??????? printData(response, msg);??
??? }??
??????
??? @RequestMapping(value = "/{fundid}", method = RequestMethod.DELETE)??
??? public void delete(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid)??
??????????? throws Exception {??
??????? System.out.println(">>>>>>>>>>delete>>>>>>>>>>>>>>"+fundid);??
??????? StringBuilder msg = new StringBuilder();??
??????? int i = this.clinic.delete(fundid);??
??????? if(i>0) {??
??????????? msg.append("{"msg":"成功"}");??
??????? }??
??????? msg.append("{"msg":"失败"}");??
??????? printData(response, msg);??
??? }??
??????
??? private void printData(HttpServletResponse response, StringBuilder msg){??
??????? try {??
??????????? response.setContentType("text/html;charset=utf-8");??
??????????? response.setCharacterEncoding("UTF-8");??
??????????? PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));??
??????????? out.println( msg );??
??????????? out.close();??
??????? } catch (Exception e) {??
??????????? e.printStackTrace();??
??????? }??
??? }??
}?
/*
?* To change this template, choose Tools | Templates
?* and open the template in the editor.
?*/
package com.cssweb.zszq.lmdz.web;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.cssweb.common.util.CollectionData;
import com.cssweb.zszq.lmdz.Clinic;
import com.cssweb.zszq.lmdz.pojo.Khzl;
import com.cssweb.zszq.lmdz.pojo.LmdzNew;
/**
?*
?* @author HUJUN
?*/
@Controller??
@RequestMapping("/zszqsms")
public class LmdzForm {
??? private final Clinic clinic;
??? @Autowired
??? public LmdzForm(Clinic clinic) {
??????? this.clinic = clinic;
??? }
???
???
??? @RequestMapping(value="/{fundid}", method = RequestMethod.GET)??
??? public void get(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid) throws Exception {
??System.out.println(">>>>>>>>>>getList>>>>>>>>>>>>>>"+fundid);
??StringBuilder msg = new StringBuilder();
??Khzl khzl = this.clinic.findKh(fundid);
??if(khzl!=null) {
??????? ?Collection<LmdzNew> lm = CollectionData.getLmList();
??????????? Collection<LmdzNew> results = this.clinic.findLmdzs(fundid);
??????????? Iterator<LmdzNew> it = lm.iterator();
??? ??String json = "{total:"+lm.size()+",root:[";
??? ??int i = 0;
??????? ?while(it.hasNext()) {
??????? ??LmdzNew lmdz = it.next();
??????? ??lmdz.setState(1);
??????? ??json += "{lmid:'" + lmdz.getLmNum() + "',lmname:'" + lmdz.getLmName() + "',lmstate:'" + lmdz.getState() + "'}";
??????? ??i++;
??????? ??if (i != lm.size() - 1) {
????? json += ",";
????}
??????? ?}
??????? ?json += "]}";
??????? ?msg.append("{"msg":""+json+""}");
??? ?}
??else {
???msg.append("{"msg":"帐号不存在"}");
??}
??printData(response, msg);
??? }
???
?@RequestMapping(value = "/{fundid}/{no}", method = RequestMethod.POST)
?public void save(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid,
???@PathVariable("no") String no) throws Exception {
??System.out.println(fundid + ">>>>>>>>>>save>>>>>>>>>>>>>>"+no);
??StringBuilder msg = new StringBuilder();
??this.clinic.save(fundid, no.split(","));
??msg.append("{"msg":"成功"}");
??printData(response, msg);
?}
???
?@RequestMapping(value = "/{fundid}/{no}", method = RequestMethod.PUT)
?public void update(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid,
???@PathVariable("no") String no) throws Exception {
??System.out.println(fundid + ">>>>>>>>>>update>>>>>>>>>>>>>>"+no);
??StringBuilder msg = new StringBuilder();
??int i = this.clinic.updateTelById(fundid, no);
??if(i>0) {
???msg.append("{"msg":"成功"}");
??}
??msg.append("{"msg":"失败"}");
??printData(response, msg);
?}
???
?@RequestMapping(value = "/{fundid}", method = RequestMethod.DELETE)
?public void delete(HttpServletRequest request, HttpServletResponse response, @PathVariable("fundid") String fundid)
? ??throws Exception {
??System.out.println(">>>>>>>>>>delete>>>>>>>>>>>>>>"+fundid);
??StringBuilder msg = new StringBuilder();
??int i = this.clinic.delete(fundid);
??if(i>0) {
???msg.append("{"msg":"成功"}");
??}
??msg.append("{"msg":"失败"}");
??printData(response, msg);
?}
???
??? private void printData(HttpServletResponse response, StringBuilder msg){
??try {
???response.setContentType("text/html;charset=utf-8");
???response.setCharacterEncoding("UTF-8");
???PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
???out.println( msg );
???out.close();
??} catch (Exception e) {
???e.printStackTrace();
??}
?}
}
?
最后还有个POJO类,呵呵:
view plaincopy to clipboardprint?
package com.cssweb.zszq.lmdz.pojo;??
?
?
/**?
?* LmdzNew entity. @author MyEclipse Persistence Tools?
?*/?
?
public class LmdzNew implements java.io.Serializable {??
?
??? // Fields??
?
??? /**?
???? *??
???? */?
??? private static final long serialVersionUID = -5138845755309588033L;??
??????
??? private String khNum;??
??? private int lmNum;??
??????
??? private String lmName;??
??? private int state;??
?
??? // Constructors??
?
??? /** default constructor */?
??? public LmdzNew() {??
??? }??
??????
??? /** full constructor */?
??? public LmdzNew(String khNum, int lmNum) {??
??????? this.khNum = khNum;??
??????? this.lmNum = lmNum;??
??? }??
??????
??? public String getKhNum() {??
??????? return this.khNum;??
??? }??
?
??? public void setKhNum(String khNum) {??
??????? this.khNum = khNum;??
??? }??
?
??? public int getLmNum() {??
??????? return this.lmNum;??
??? }??
?
??? public void setLmNum(int lmNum) {??
??????? this.lmNum = lmNum;??
??? }??
??????
??? public String getLmName() {??
??????? return lmName;??
??? }??
?
??? public void setLmName(String lmName) {??
??????? this.lmName = lmName;??
??? }??
?
??? public int getState() {??
??????? return state;??
??? }??
?
??? public void setState(int state) {??
??????? this.state = state;??
??? }??
??????
??? public boolean equals(Object other) {??
??????? if ((this == other))??
??????????? return true;??
??????? if ((other == null))??
??????????? return false;??
??????? return false;??
??? }??
??????
??? public int hashCode() {??
??????? int result = 17;??
?
??????? result = 37 * result??
??????????????? + (getKhNum() == null ? 0 : this.getKhNum().hashCode());??
??????? return result;??
??? }??
}?
package com.cssweb.zszq.lmdz.pojo;
/**
?* LmdzNew entity. @author MyEclipse Persistence Tools
?*/
public class LmdzNew implements java.io.Serializable {
?// Fields
?/**
? *
? */
?private static final long serialVersionUID = -5138845755309588033L;
?
?private String khNum;
?private int lmNum;
?
?private String lmName;
?private int state;
?// Constructors
?/** default constructor */
?public LmdzNew() {
?}
?
?/** full constructor */
?public LmdzNew(String khNum, int lmNum) {
??this.khNum = khNum;
??this.lmNum = lmNum;
?}
?
?public String getKhNum() {
??return this.khNum;
?}
?public void setKhNum(String khNum) {
??this.khNum = khNum;
?}
?public int getLmNum() {
??return this.lmNum;
?}
?public void setLmNum(int lmNum) {
??this.lmNum = lmNum;
?}
?
?public String getLmName() {
??return lmName;
?}
?public void setLmName(String lmName) {
??this.lmName = lmName;
?}
?public int getState() {
??return state;
?}
?public void setState(int state) {
??this.state = state;
?}
?
?public boolean equals(Object other) {
??if ((this == other))
???return true;
??if ((other == null))
???return false;
??return false;
?}
?
?public int hashCode() {
??int result = 17;
??result = 37 * result
????+ (getKhNum() == null ? 0 : this.getKhNum().hashCode());
??return result;
?}
}
好了,所有的源代码都贴出来了。整个服务端的程序可以跑在tomcat下做测试。接下来我们只需要提供rest客户端的接口让别的应用调用即可。下面再给出个调用的demo。这个项目比较简单。
还望大家多多指教,大家互相学习学习。
view plaincopy to clipboardprint?
package com.cssweb.zszq.client;??
?
import java.io.BufferedReader;??
import java.io.IOException;??
import java.io.InputStreamReader;??
import java.net.HttpURLConnection;??
import java.net.URL;??
?
public class ClientTest {??
?
??? public static void main(String[] args) throws IOException {??
??????? delete();??
??????? update();??
??????? save();??
??????? select();??
??? }???
??? /**?查询栏目定制? 68008610为资金帐号 */?
??? public static void select() {??
??????? try {??
??????????? URL url = new URL("http://localhost:8080/zszqrestsms/zszqsms/68008610");??
??????????? HttpURLConnection conn = (HttpURLConnection) url.openConnection();??
??????????? conn.setDoOutput(true);??
??????????? conn.setRequestMethod("GET");??
??????????? conn.setRequestProperty("Content-Type", "text/json");??
??????????? BufferedReader rd = new BufferedReader(new InputStreamReader(conn??
??????????????????? .getInputStream()));??
??????????? String line;??
??????????? while ((line = rd.readLine()) != null) {??
??????????????? System.out.println(line);??
??????????? }??
?
??????????? rd.close();??
??????? } catch (Exception e) {??
??????????? System.out.println("Error" + e);??
??????? }??
??? }???
?? /** 删除定制栏目 68008610为资金帐号 */?
??? public static void delete() {??
??????? try {??
??????????? URL url = new URL("http://localhost:8080/zszqrestsms/zszqsms/68008610");??
??????????? HttpURLConnection conn = (HttpURLConnection) url.openConnection();??
??????????? conn.setDoOutput(true);??
??????????? conn.setRequestMethod("DELETE");??
??????????? conn.setRequestProperty("Content-Type", "text/json");??
??????????? BufferedReader rd = new BufferedReader(new InputStreamReader(conn??
??????????????????? .getInputStream()));??
??????????? String line;??
??????????? while ((line = rd.readLine()) != null) {??
??????????????? System.out.println(line);??
??????????? }???
?rd.close();??
??????? } catch (Exception e) {??
??????????? System.out.println("Error" + e);??
??????? }??
??? }??
}?