servlet模板配置

需求:在使用servlet的时候,最后经常会转发或重定向到请求页面,每次都要写请求页面的地址。

思考:能不能通过请求对象,直接获取请求页面的地址呢?

通过request.getHeader("referer")返回的是http://客户机IP/项目名/中间文件夹/请求页面,同时request.getContextPath()返回/项目名。

那我直接在servlet模板中定义一个方法叫做backRequest(HttpServletRequest request),来实现转发或重定向功能。

转发:要得到referer头信息中"/项目名"以后的字符串,就以request.getContextPath()为分割符来得到数组,数组的最后一项即为所要得到的字符串,将它作为转发的路径。

//转发至请求页面
	public void backRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
	{
		//得到请求页面的完整地址http://客户机IP/项目名/中间文件夹/请求页面
		String completedRequestURL = request.getHeader("referer");
		//得到/项目名
		String requestProName = request.getContextPath();
		//分离转发需要的地址
		String[] arr = completedRequestURL.split(requestProName);

		//转发操作
		request.getRequestDispatcher(arr[arr.length-1]).forward(request, response);
	}

重定向:在referer头信息中,得到request.getContextPath()这个字符串的索引位置,取这个位置以后的字符串,即带项目名作为重定向的地址。

//转发至请求页面
	public void backRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
	{
		//得到请求页面的完整地址http://客户机IP/项目名/中间文件夹/请求页面
		String completedRequestURL = request.getHeader("referer");
		//得到/项目名
		String requestProName = request.getContextPath();
		//得到项目名字符串的索引位置
		int startIndex = completedRequestURL.indexOf(requestProName);

		//得到带项目名称的路径,用来重定向到请求页面。
		String hopeUrl = completedRequestURL.substring(startIndex);
		//重定向
		response.sendRedirect(hopeUrl);
	}
时间: 2024-12-18 17:16:48

servlet模板配置的相关文章

JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板

[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140466.html 联系方式:[email protected] 一.http协议回顾: 在上一篇文章中:JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置,我们通过在浏览器输入url,就能看到在MyEclipse中编写的Servlet资源,效果如下: 上图中,整个过程是这样的:浏览器中输入url后,会通过hosts文件/dns服务

修改myeclipse的servlet模板

今天修改myeclipse的servlet模板时,发生 Could not create the view: An unexpected exception was thrown.错误. 解决方案:1.换工作空间,但是此方法较为麻烦,需要进行系列重新配置2.将MyEclipse工作空间中\.metadata\.plugins\org.eclipse.core.runtime\.settings路径下 com.genuitec.eclipse.ast.deploy.core文件删除即可!!

MyEclipse中修改servlet模板

1.在MyEclipse目录下搜索com.genuitec.eclipse.wizards,得到搜索结果 com.genuitec.eclipse.wizards_8.4.100.me200912131330.jar(我的位置是:C:\Users\Administrator\AppData\Local\Genuitec\Common\plugins): 2.备份,复制粘贴一份,完全关闭MyEclipse: 3.使用winrar打开com.genuitec.eclipse.wizards_8.4.

MyEclipse自定义servlet模板

每次用MyEclipse默认的servlet的模板创建servlet的时候,里面会生成好多没有用的代码.因此,我们可以自定义servlet模板.步骤如下: 找到com.genuitec.eclipse.wizards_11.5.0.me201310291746.jar 文件,该文件在MyEclipse(本人安装的是MyEclipse Professional 2014)安装目录下的/plugins下 打开com.genuitec.eclipse.wizards_11.5.0.me20131029

Servlet的配置

今天接触了Servlet,Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序Servlet是早期最初始的一个版本,慢慢形成JSP.介绍一下Servlet的配置. 案例:web项目WebRoot/WEB-INF/web.xml下 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://jav

深入浅出Zabbix 3.0 -- 第七章 模板配置与管理

第七章  模板配置与管理 我们在主机中不仅可以添加很多需要监控的指标(即监控项),还可以添加图形.触发器.监控项组.展示屏.Web scenarios和low-level Discovery,如果在每个主机中添加这些对象,尤其是在一个大型环境中,其工作量是不可想象的,何况需要监控的主机有很多具有相同的监控属性,需要重复相同的配置工作,如果手工完成这些配置任务几乎是不可能的.好在Zabbix为我们提供了模板,通过在不同的模板中添加监控项.触发器.图形等配置并应用到任意数量的主机上.当然对于特殊的监

30天轻松学习javaweb_修改tomcat的servlet模板

在MyEclipse目录下搜索com.genuitec.eclipse.wizards得到搜索结果 com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar解压出文件夹,修改com.genuitec.eclipse.wizards_9.0.0.me201108091322\templates\Servlet.java 的模板文件使用jar命令将文件夹打包成jar包:1.在dos窗口中进入到解压后的com.genuitec.eclipse.wiza

修改 myeclipse8.5 servlet 模板

在myeclipse8.5的安装目录下找到 \Common\plugins下的com.genuitec.eclipse.wizards_8.5.0.zmyeclipse75020090612.jar 注意先关闭myeclipse. 1.找到Genuitec\Common\plugins下的com.genuitec.eclipse.wizards_8.5.0.zmyeclipse75020090612.jar ( "Common"和"MyEclipse 8.5"同在&

Servlet开发技术,创建,以及Servlet的配置,web.xml的配置

直接上图,不废话!!! 第一:首先在Eclipse的包资源管理器中,单机鼠标右键,在弹出的快捷键菜单中选择“新建”/Servlet命令,在弹出的对话框中输入新建的Servlet所在的包和类名,然后单击下一步, 我选择默认,Next 依旧默认,Next 注意事项,在创建web的工程的时候需要注意的是如下图,选择上web.xml这个按钮,因为Servlet需要配置一下web.xml这个文件,web.xml在web-inf这个文件下面 上图第二个箭头前面有个方括号,勾选上就可以自动创建好web.xml