java url 加密和隐藏域

    技术2022-05-18  8

    某游戏连接,以前一直是死敌! 发生了很多很多,嗯 很多!现在忽然发现了一个很有趣的东西http://221.130.15.57:8091/p?p_E/2035847_4d8b002b_bccc45a6/连接加密,过滤器搞定但是扩展名有木有!有木有?

    RESTful URL

    就是设计url的时候要满足REST标准,REST标准。。。好难说明白,可以参考http://baike.baidu.com/view/1077487.htm?fr=ala0_1

    spring 现在真不好说以后会臃肿成神马东西???? 简明啊简明

    由于下一版本的rapid-framwork需要集成spring RESTful URL,所以研究了一下怎么搭建. 并碰到了一下问题。

    springmvc 3.0 中增加 RESTful URL功能,构造出类似javaeye现在的URL。 rest介绍 , 这里还有struts2 rest构造的一篇文章: 使用 Struts 2 开发 RESTful 服务

    简单例子如下,比如如下URL

    Java代码/blog/1   HTTP GET =>     得到id = 1的blog    /blog/1   HTTP DELETE => 删除 id = 1的blog    /blog/1   HTTP PUT   =>    更新id = 1的blog    /blog      HTTP POST =>    新增BLOG  

    /blog/1  HTTP GET =>    得到id = 1的blog/blog/1  HTTP DELETE => 删除 id = 1的blog/blog/1  HTTP PUT  =>   更新id = 1的blog/blog     HTTP POST =>   新增BLOG

    以下详细解一下spring rest使用.

    首先,我们带着如下三个问题查看本文。1. 如何在java构造没有扩展名的RESTful url,如 /forms/1,而不是 /forms/1.do

    2. 由于我们要构造没有扩展名的url本来是处理静态资源的容器映射的,现在被我们的spring占用了,冲突怎么解决?3. 浏览器的form标签不支持提交delete,put请求,如何曲线解决?

    springmvc rest 实现

    springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的,通过如@RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)即可处理/blog/1 的delete请求.

    Java代码@RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)    public ModelAndView delete(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) {         blogManager.removeById(id);        return new ModelAndView(LIST_ACTION);    }  

    @RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)public ModelAndView delete(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) { blogManager.removeById(id); return new ModelAndView(LIST_ACTION);}

    @RequestMapping @PathVariable如果URL中带参数,则配合使用,如

    Java代码@RequestMapping(value="/blog/{blogId}/message/{msgId}",method=RequestMethod.DELETE)    public ModelAndView delete(@PathVariable("blogId") Long blogId,@PathVariable("msgId") Long msgId,HttpServletRequest request,HttpServletResponse response) {    }  

    @RequestMapping(value="/blog/{blogId}/message/{msgId}",method=RequestMethod.DELETE)public ModelAndView delete(@PathVariable("blogId") Long blogId,@PathVariable("msgId") Long msgId,HttpServletRequest request,HttpServletResponse response) {}

    spring rest配置指南1. springmvc web.xml配置

    Xml代码<!-- 该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>springmvc</servlet-name>       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>       <load-on-startup>1</load-on-startup>   </servlet>      <!-- URL重写filter,用于将访问静态资源http://localhost/foo.css 转为http://localhost/static/foo.css -->   <filter>       <filter-name>UrlRewriteFilter</filter-name>       <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>       <init-param>               <param-name>confReloadCheckInterval</param-name>               <param-value>60</param-value>           </init-param>       <init-param>                   <param-name>logLevel</param-name>                   <param-value>DEBUG</param-value>           </init-param>         </filter>   <filter-mapping>       <filter-name>UrlRewriteFilter</filter-name>       <url-pattern>/*</url-pattern>   </filter-mapping>      <!-- 覆盖default servlet的/, springmvc servlet将处理原来处理静态资源的映射 -->   <servlet-mapping>       <servlet-name>springmvc</servlet-name>       <url-pattern>/</url-pattern>   </servlet-mapping>      <!-- 浏览器不支持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>springmvc</servlet-name>   </filter-mapping>  

    <!-- 该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>springmvc</servlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <load-on-startup>1</load-on-startup> </servlet>  <!-- URL重写filter,用于将访问静态资源http://localhost/foo.css 转为http://localhost/static/foo.css --> <filter>  <filter-name>UrlRewriteFilter</filter-name>  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  <init-param>       <param-name>confReloadCheckInterval</param-name>       <param-value>60</param-value>      </init-param>  <init-param>              <param-name>logLevel</param-name>              <param-value>DEBUG</param-value>         </init-param>      </filter> <filter-mapping>  <filter-name>UrlRewriteFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>  <!-- 覆盖default servlet的/, springmvc servlet将处理原来处理静态资源的映射 --> <servlet-mapping>     <servlet-name>springmvc</servlet-name>     <url-pattern>/</url-pattern> </servlet-mapping>  <!-- 浏览器不支持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>springmvc</servlet-name> </filter-mapping>

    2. webapp/WEB-INF/springmvc-servlet.xml配置,使用如下两个class激活@RequestMapping annotation

    Java代码<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>  

    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

    完整配置

    Java代码<beans default-autowire="byName"    >            <!-- 自动搜索@Controller标注的类 -->         <context:component-scan base-package="com.**.controller"/>                 <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>            <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>            <!-- Default ViewResolver -->         <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">             <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>             <property name="prefix" value="/pages"/>             <property name="suffix" value=".jsp"></property>         </bean>                 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="i18n/messages"/>            <!-- Mapping exception to the handler view -->         <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">             <!-- to /commons/error.jsp -->             <property name="defaultErrorView" value="/commons/error"/>             <property name="exceptionMappings">                 <props>                 </props>             </property>         </bean>                </beans>  

    =========================

    感觉就动态加密挺有用 这个扩展名保护。。。。。

    Tomcat resin 忙的时候都会出消息

    嗨愚蠢的庶民啊 !!! 貌似没用 呵呵


    最新回复(0)