`

搭建SSH,从零开始(第N天)—使用URL重定向技术实现REST风格URL

ssh 
阅读更多

一,什么是REST风格URL

理论参考:理解本真的REST架构风格

个人理解,以注册,登录为例。正常的注册,登录画面的URL应该是这样的

http://localhost:8080/myapp/test/regist.jsp

http://localhost:8080/myapp/test/login.jsp

REST风格的URL

http://localhost:8080/myapp/test/user/regist

http://localhost:8080/myapp/test/user/login

优点和缺点,请参考网上资料

二,Struts2实现REST风格的思路

1,使用RESTFUL插件

详细可参见:Struts2的零配置和REST插件

优点:使用约定而非配置,减少了配置的工作量,使用简单

缺点:自由度较低,(目前没找到如何自定义转发规则)

前台代码中使用的REST URL,做成后不易修改

2,使用Urlrewriter

URLRewriter可以通过自定义重定向规则(rule),当客户端请求REST URL时,根据配置的规则重定向到实际的资源路径。

URLRewriter还可以处理服务端的返回界面,依据规则(outbound-rule)将界面中(JSP)的URL编码成RSET风格。

具体流程参见下图

 

优点:可配置性强,支持正则表达式匹配

可以方便生成REST URL,容易变更。(开发过程使用正常URL,项目发布时,作统一配置即可)

缺点:所有规则需要手动配置

三,使用URLRewriter实现REST风格的具体流程

1,导入,配置Urlrewrite

jar包下载路径:http://tuckey.org/urlrewrite/
配置web.xml (需要注意filter-mapping的顺序,需要配置在Strust2的过滤器之前执行)
<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

2,编写urlrewrite.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
        "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">

<!--

    Configuration file for UrlRewriteFilter
    http://www.tuckey.org/urlrewrite/

-->
<urlrewrite>
    <rule>
        <from>/test/user/regist</from>
        <to>/test/regist.jsp</to>
    </rule>
    <rule>
        <from>/test/user/login</from>
        <to>/test/login.jsp</to>
    </rule>
    <outbound-rule>
        <from>/test/login.jsp</from>
        <to>/test/user/login</to>
    </outbound-rule>
</urlrewrite>

3,边界返回用界面(jsp)

/test/regist.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="h"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><h:text name="registPage"/></title>
</head>
<body>


    <div>
    <a href="lang.action?local=zh_CN¤tUrl=<%=request.getServletPath()%>">中文</a>
    <a href="lang.action?local=en_US¤tUrl=<%=request.getServletPath()%>">English</a>
    </div>
	<p><h:text name="inputRegistInfo"/></p>
	<h:text name="clickHere"/>
	<a href="<%=response.encodeURL("/test/login.jsp")%>"><h:text name="login"/></a>
	<a href="<c:url value="/test/login.jsp"/>"><h:text name="login"/></a>
	<h:actionmessage />
	<h:form action="/test/testRegist.action" method="post" validate="true">
		<h:text name="userName"/><h:textfield name="userName"></h:textfield>
		<h:fielderror> 
		    <h:param>userName</h:param>
		</h:fielderror>
		<h:text name="passWord"/><h:password name="passWord"></h:password>
		<h:fielderror> 
            <h:param>passWord</h:param>
        </h:fielderror>
		<h:text name="rePassWord"/><h:password name="rePassWord"></h:password>
		<h:fielderror> 
            <h:param>rePassWord</h:param>
        </h:fielderror>
		<h:text name="email"/><h:textfield name="email"></h:textfield>
		<h:fielderror> 
            <h:param>email</h:param>
        </h:fielderror>
		<h:submit key="submit"></h:submit>
	</h:form>
</body>
</html>
如果需要生成生成REST URL,需参照以上代码,使用
<c:url value="/test/login.jsp"/>
进行URL编码,编码后的URL默认在之前会加上项目跟路径。也可以使用
<%=response.encodeURL("/test/login.jsp")/>
但使用response.encodeURL,编码后的URL默认不会在之前加上项目根路径
关于JSTL的安装和配置参见JSTL标签库的导入
JSTL的下载路径:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip

四,效果示意图



 

分享到:
评论

相关推荐

    Eclipse搭建SSH框架开发学习笔记

    总结来说,"Eclipse搭建SSH框架开发学习笔记"涵盖了从基础环境准备(JDK安装与环境变量配置)、开发工具(Eclipse与Tomcat配置)、数据库(MySQL服务器搭建)到系统服务管理等多个环节,为初学者提供了详尽的步骤...

    SSH简单MyEclipse搭建SSH框架登录实例

    本教程将详细介绍如何在MyEclipse环境中搭建一个SSH框架,并实现一个登录功能实例。以下是对SSH框架及其搭建过程的详细解释。 **1. Struts2** Struts2是MVC(Model-View-Controller)设计模式的实现,主要用于处理...

    SSH框架搭建jar包

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。...在实际开发中,SSH框架的使用可以极大地提高开发效率,降低项目风险,因此是许多企业首选的开发工具。

    Eclipse搭建SSH架构

    下面将详细介绍如何使用Eclipse搭建SSH架构,并进行逐步的整合过程。 1. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于控制应用程序的流程。在Eclipse中创建一个新的Web项目...

    myeclipse搭建SSH2框架

    以下将详细介绍如何使用Myeclipse进行SSH2框架的搭建。 1. **设置数据连接**: 在开始搭建SSH2项目之前,首先需要确保Myeclipse能够连接到数据库。通过DataBase Explorer或者Other -&gt; MyEclipse Database Explorer...

    搭建SSH开发环境(三大框架)

    在IT行业中,SSH(Struts2、Spring、Hibernate)是一个常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用...SSH框架的使用可以帮助开发者更高效地组织代码,实现松耦合,提高代码的可维护性和可扩展性。

    SSH框架搭建源码

    这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个完整的Web应用程序。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    搭建ssh所需的一些jar包

    SSH(Struts2、Spring、Hibernate)是一种常见的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这三个框架分别负责MVC架构中的表现层、业务层和数据持久层,协同工作,提供了强大的功能和灵活性。...

    SSH框架搭建步骤

    5. **事务管理**:在Spring配置文件中配置事务管理器,使用AOP来处理事务的开始、提交、回滚。 **整合SSH** 1. **配置整合**:在`struts.xml`中配置Spring插件,使Struts能识别由Spring管理的Action。 2. **Action...

    SSH+REST 最小版完整jar包,已验证,正常启动

    SSH(Secure Shell)和REST(Representational State Transfer)是两种在IT行业中广泛使用的技术,尤其在构建分布式系统和网络通信时。SSH主要用于提供安全的远程登录和其他安全网络服务,而REST是一种软件架构风格...

    如何搭建SSH2框架

    SSH2框架,全称为Struts2 + Spring + Hibernate2,是Java Web开发中的一个流行组合,它通过集成这三个组件,提供了一种高效、灵活且可扩展的解决方案。SSH2框架的主要目标是提高开发效率,降低系统耦合度,并且能够...

    ssh框架搭建并简单实例实现(注册登录功能)

    SSH框架是Java Web开发中...SSH框架的搭建和实例实现有助于理解MVC模式和企业级应用的开发流程。通过这个简单的注册登录功能,你可以深入学习每个框架的核心概念和它们之间的协作方式,为后续的复杂项目打下坚实基础。

    myeclipse搭建SSH步骤视频

    在IT行业中,SSH(Struts2、Hibernate、Spring)是一个常见的Java企业级应用开发框架组合,因其高效、灵活和模块化的特性而广受欢迎。...熟练掌握SSH框架的搭建和使用,对于提升Java Web开发能力是非常有帮助的。

    eclipse搭建ssh的详细流程

    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题。下面我介绍一下SSH框架搭建的全过程。

    myeclipse搭建SSH框架图解

    【SSH框架搭建图解】 SSH框架,全称为Struts+Spring+Hibernate,是Java Web开发中的经典组合。这个框架集合了MVC模式的Struts、依赖注入与事务管理的Spring以及对象关系映射的Hibernate,提供了高效且灵活的开发...

    Eclipse基于注解方式搭建ssh框架

    "Eclipse基于注解方式搭建SSH框架"项目展示了如何在Eclipse环境中利用注解驱动的方式集成Struts2、Spring和Hibernate,实现了一个包含注册功能的Web应用。项目中使用了JPA注解简化了数据库交互,并通过数据库脚本...

    手工搭建SSH集成工程

    在IT行业中,SSH(Spring、Struts、Hibernate)是一个经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。SSH集成了Spring的依赖注入和事务管理、Struts的MVC模式以及Hibernate的对象关系映射,使得...

    SSH2框架搭建实例源码

    这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户管理功能的实现。下面我们将详细探讨这些技术及其在项目中的应用。 **Spring框架**: Spring...

    maven搭建ssh

    在IT行业中,SSH(Spring、Struts、...通过以上步骤和知识点的学习,你可以成功地使用Maven搭建一个SSH框架的应用,为Java Web开发提供强大的基础。同时,这也会加深你对Maven、SSH框架以及Java Web开发的整体理解。

Global site tag (gtag.js) - Google Analytics