`

伪静态Servlet业务工厂

阅读更多
/**
 * 伪静态Servlet业务工厂
 * @author RuiLin.Xie - xKF24276
 */
public class ActionBizFactory
{
	//单例
	private static ActionBizFactory actionBizFactory = new ActionBizFactory();
	
	//Action键值对
	private static HashMap<String, String> actionMap = new HashMap<String, String>();
	
	//私有构造
	private ActionBizFactory(){}
	
	//得到动作业务工厂
	public static ActionBizFactory getActionBizFactory()
	{
		return actionBizFactory;
	}
	
	/**
	 * 根据用户请求解析出用户动作及提交参数
	 * @param request
	 * @return
	 */
	public RequestPackage reqToRequestPackage(HttpServletRequest request, HttpServletResponse response)
	{
		RequestPackage rp = new RequestPackage();
		rp.setRequest(request);
		rp.setResponse(response);
		
		String[] tmpUrl;
		
		/**
		 *	/PoseStaticPage/login--uname-admin--upwd-123456.html
		 *  得到请求的uri
		 */
		String uri = request.getRequestURI();
		
		//分段截取
		tmpUrl = uri.split("/");
		
		/** 取得action与参数:login--uname-admin--upwd-123456.html **/
		String tmpAct = tmpUrl[tmpUrl.length - 1];
		
		/** 如果没参数,如POST **/
		if(tmpAct.indexOf("-") == -1)
		{
			if(tmpAct.indexOf(".html") != -1)
				tmpAct = tmpAct.substring(0, tmpAct.length() - 5);
			rp.setAction(tmpAct);
			return rp;
		}
		
		/** 取得Action名:login **/
		tmpUrl = tmpAct.split("--");
		String action = tmpUrl[0];
		rp.setAction(action);
		
		tmpAct = tmpAct.substring(action.length() + 1, tmpAct.length());
		
		/** 所有参数字符串:login--uname-admin--upwd-123456 **/
		String paramStr = tmpAct.substring(1, tmpAct.length() - 5);
		String[] paramArr = paramStr.split("--");
		
		/** 将参数存入map **/
		for(int i = 0; i < paramArr.length; i++)
		{
			String[] tmpParams = paramArr[i].split("-");
			rp.getParameter().put(tmpParams[0], (tmpParams.length <= 1 ? "" : tmpParams[1]));
		}

		return rp;
	}
	
	/**
	 * 执行动作
	 * @param request
	 * @param response
	 */
	public void exec(RequestPackage rp)
	{
		String className = getActionMap().get(rp.getAction());
		
		//load类,并将参数rp传入
		
	}

	
	public static HashMap<String, String> getActionMap()
	{
		return actionMap;
	}

	public static void setActionMap(HashMap<String, String> actionMap)
	{
		ActionBizFactory.actionMap = actionMap;
	}
}
分享到:
评论

相关推荐

    伪静态伪静态伪静态伪静态伪静态

    伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪静态伪...

    JSP+Servlet系统 使用伪静态

    "JSP+Servlet系统 使用伪静态" 这个标题表明这是一个基于Java Web技术构建的系统,特别提到了"JSP"(JavaServer Pages)和"Servlet",它们是Java语言用于开发动态网页和服务的核心组件。"伪静态"则是指将动态URL转化...

    discuz伪静态配置方法

    在运营Discuz论坛时,为了提升用户体验和搜索引擎优化(SEO),很多管理员会选择启用伪静态功能。伪静态技术能够将动态URL转换为静态化的HTML链接,使得网页看起来像静态页面,但实际上仍然保持动态网站的特性。 ...

    伪静态插件 asp伪静态

    在构建网站时,为了优化搜索引擎优化(SEO)和提高用户体验,伪静态技术是一个常见的选择。本文将详细探讨“伪静态插件”以及如何在ASP环境下实现伪静态,并提供关于个性化后缀和网站后缀修改的一些建议。 首先,...

    DZX3.5伪静态规则文件

    在IT行业中,伪静态是一种将动态网页转换为静态URL的技术,主要是为了提高网站的SEO(搜索引擎优化)性能和用户体验。DZX3.5是某款基于PHP开发的网站内容管理系统,可能类似于Discuz! X系列,它允许管理员通过配置伪...

    jsp伪静态,javaweb实现伪静态

    在伪静态场景下,可以创建一个Servlet,接收以静态URL形式的请求,内部执行相应的动态处理逻辑,然后返回JSP页面。 3. **使用隐式对象**: JSP中的隐式对象`request`和`response`可以帮助我们完成URL重写。在`doGet`...

    伪静态的源码 伪静态 伪静态 伪静态 需要的来

    伪静态技术是Web开发中的一种常见优化手段,主要用于将动态网页的URL转化为静态网页的URL形式,以提高网站的搜索引擎友好性(SEO)和用户体验。在这个压缩包中,可能包含了实现伪静态功能的源代码,适合需要进行这...

    伪静态 伪静态配置 控件

    在IT行业中,伪静态是一种非常重要的技术,尤其对于网站优化(SEO)而言。它涉及到Web服务器的配置,目的是将动态URL转化为看似静态的URL形式,从而提高搜索引擎的友好度和用户体验。下面,我们将深入探讨“伪静态”...

    伪静态的实现及伪静态的意义.ASP.NET

    在IT领域,尤其是在Web开发中,伪静态技术是一种常见的优化策略,主要应用于ASP.NET等动态网站框架中。本文将详细探讨伪静态的实现及其意义。 首先,伪静态的主要作用是提高搜索引擎的友好性。搜索引擎爬虫在抓取...

    mayicms蚂蚁分类信息5.9 宝塔nginx 单城市伪静态规则

    【标题】"mayicms蚂蚁分类信息5.9 宝塔nginx 单城市伪静态规则"涉及的关键技术点主要是关于网站URL伪静态处理,主要针对mayicms蚂蚁分类信息系统5.9版本,并且是在宝塔面板环境中使用Nginx服务器进行配置。...

    网站重写url伪静态工具

    ISAPI_Rewrite,ISAPI_Rewrite用来实现伪静态,将动态网页通过重写URL的方法实现去掉动态网页的参数!它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。 IIS配置相当简单,配置好之后就有...

    伪静态注入中转突破伪静态

    【伪静态注入中转突破伪静态】是一种网络安全技术,用于在动态网站中模拟静态页面,以提高搜索引擎优化和用户体验。然而,这种技术也带来了一定的安全隐患,因为伪静态URL结构使得传统SQL注入攻击手段变得更为复杂。...

    最新discuz伪静态规则+设置详解【多版本】

    最新discuz伪静态规则+设置详解 多版本 伪静态效果:https://www.foxconnpx.cn/productinfo-3022.html或者https://www.ixcpx.cn/xidian/ 所谓动态地址就是带有?号如https://www.sjwxjc.cn/?type=productinfo&id=533...

    帝国cms自定义伪静态插件

    帝国cms自定义伪静态插件

    2021版帝国cms自定义栏目信息url伪静态插件

    4:栏目目录和信息文件名是英文或数字(栏目目录建议英文或英文开头,“-_”上下划线留着给别的东西用吧避免冲突如其它伪静态,避免冲突) ********为了通用只能遵守上述要求,有这些特殊需求自己改去********* 栏目...

    2020T5友价商城源码系统nginx伪静态重写规则.zip

    "2020T5友价商城源码系统nginx伪静态重写规则.zip" 提供了一个完整的商城源码系统,它具有丰富的功能,如微信支付宝支付、自动发货、域名交易和源码交易等。这个系统基于T5框架,这意味着它可能是基于PHP开发的,...

    asp.net伪静态完整代码

    ASP.NET伪静态技术是Web开发中的一个重要概念,它主要用于优化网站的搜索引擎友好度(SEO)以及提高用户体验。在传统的ASP.NET应用程序中,URL通常会显示实际的文件路径和扩展名,例如“Default.aspx”或...

    苹果CMSV10视频+文字详细教程-路由伪静态用法

    在这个“苹果CMSV10视频+文字详细教程-路由伪静态用法”资料包中,包含了如何设置和使用苹果CMSV10的路由伪静态功能的详细指导。以下是关于这个主题的深入解析。 一、路由机制 路由是现代Web应用中的关键组成部分,...

    jsp实现URL伪静态.rar

    URL伪静态是网站优化的一个重要技术手段,它主要应用于动态网站,使得原本的动态URL展现为静态页面的格式,从而提高用户体验,优化搜索引擎的抓取效率。本资料"jsp实现URL伪静态.rar"将详细介绍如何在JSP环境下实现...

    dz伪静态文件

    【 dz 伪静态文件详解】 在互联网世界中,网站的性能和用户体验往往受到网页加载速度的影响。为了提高网站的搜索引擎优化(SEO)和用户体验,许多网站管理员选择使用伪静态技术。这里的“dz伪静态文件”是指Discuz!...

Global site tag (gtag.js) - Google Analytics