Tag: servlets

仅记录http servlet响应标头

这是一个与Capture相关的问题并记录响应主体 。 如果我只想记录响应头而不是整个身体怎么办? 是否有与链接问题中描述的方法不同的方法?

HTTP状态404 – Servlet 不可用

问题 :我的带有web.xml的index.jsp继续进入HTTP 404和500 我正在使用Tomcat6。 这是来自index.jsp: Registration First name: Last name: 当我在注册时: 我打了名字和姓,我进入404,消息: HTTP状态404 – Servlet RegistrationServlet不可用 类型状态报告 消息 Servlet RegistrationServlet不可用 description请求的资源(Servlet RegistrationServlet不可用)不可用。 Apache Tomcat / 6.0.35 你认为这个错误的原因是什么? RegistrationServlet类位于文件src/coreservlets/下的src/coreservlets/文件夹中 我检查了web.xml,但它似乎没问题,但这里是(如果它会有帮助): ShowBalance coreservlets.ShowBalance ShowBalance /show-balance RandomNumberServlet coreservlets.RandomNumberServlet RandomNumberServlet /random-number RegistrationServlet coreservlets.RegistrationServlet RegistrationServlet /register PrimeServlet coreservlets.PrimeServlet PrimeServlet /prime index.jsp index.html 过去两天我一直试图解决这个小罪魁祸首,但没有,任何帮助都会非常感激。 编辑: 根据要求,这里是RegistrationServlet package coreservlets; import java.io.*; import […]

为什么我们需要一个servlet名称?

我已经阅读了Head First JSP和Servlet ,我看到web.xml有 ServletName packy.FirstServlet ServletName /ServletURL 为什么要隐藏原始servlet的位置? 我可以简单地看到它是出于安全原因和更多这样的优点,但为什么每个servlet都有一个名称 ? 为什么web.xml不能简单 ServletURL packy.FirstServlet

如何在Tomcat上的Web应用程序中提供静态文件

我在eclipse中有这个基于servlet的web应用程序项目,并想要附加一些html标签,如 。 文件夹结构是: C:/apache-tomcat-7.0.53/ 我的工作区位于D:/../../ workplace / CpdApplication / src / cpd / MyServlet.java cpd包含:MyServlet.java,Chart.js和其他文件。 CpdApplication /的WebContent / META-INF / web.xml文件 我有一些路径问题,我无法解决它们,我一遍又一遍地搜索,仍然无法工作,我得到了一个404(未找到)的http://localhost:8080/CpdApplication/Chart.js 。 问题是当我想追加 ,Tomcat无法解析Chart.js静态文件。

拒绝使用Naming Convention插件直接访问Struts2中的JSP文件

我一直在努力解决这个问题,因为我是Struts2开发的新手,最近才开始使用这个命名的Convention Plugin。 我正在尝试创建一个简单的webapp,起初只包含两个页面: 登录页面(login.jsp) 主页(home.jsp) 首先向用户显示登录页面,如果提供了正确的用户名和密码,他们将登录并重定向到主页。 我已成功设法创建我的小型webapp,写下自定义登录拦截器,一切正常并按预期工作。 我可以将用户重定向到登录页面,如果他/她试图直接调用HomeAction (如果您以前登录则会导致home.jsp ),如http://myserver/homeAction 。 当我尝试像这样直接访问JSP时出现问题: http://myserver/home 当我使用这个convention plugin ,struts会获取我的home.jsp插件并显示它。 这不是我期望的行为,因为home.jsp应该仅作为loginAction成功结果显示。 我试图解决这个问题的事情 好吧,据我搜索,将我的JSP放在/WEB-INF/目录中可以防止它们被访问,但事实并非如此,因为我的所有JSP都在/WEB-INF/content/ 。 我尝试的另一件事是阻止访问任何JSP资源(阻止*.JSP请求)。 只要您尝试访问myserver/home.jsp ,但在访问myserver/home时失败(如预期的那样),这就可以解决问题。 编辑: stackoverflow中有关于此问题的另一个问题,但我无法理解答案: Struts 2 Convention Plugin和WEB-INF下的JSP文件 信息更新:我发现Struts2约定插件使用了一种称为“无动作结果”的东西,所以你可以通过调用没有它扩展的JSP来访问你的WEB-INF/content目录中的JSP ,它会将它作为一个虚拟动作来处理它。 JSP成功返回该JSP 。 这是一个例子来说明我想要解释的内容: 如果我在WEB-INF/content目录中有home.jsp并调用http://myserver/home ,Struts2将“触发”一个结果为home.jsp 。 那么问题的解决方案就是禁用这种“无动作”的结果。 如果没人提供答案,我将继续更新问题。

从多部分请求获取表单参数而不获取文件

我正在寻找一种方法来获取Servletfilter中的HTTP多部分请求的表单参数,而无需上传文件(尚未)。 request.getParameterMap()返回空。 我理解这是因为请求是多部分的。 我看过commons.HttpFileUpload但这似乎对我的情况有点过分。 在这个filter中,我只对普通参数感兴趣,并且还不想处理文件上传。 编辑:主要问题是我需要在filter堆栈的下方有一个完整的HttpRequestObject。 HttpFileUpload似乎消耗了部分请求数据(可能是通过使用数据流对象并再次关闭它)。

我应该覆盖service()或doPost()吗?

我正在阅读一本关于servlet的书,在那本书中给出了关于servlet类以及HttpServlet类的简要解释。 有一个示例用于填充表单 – 该表单,servlet的doPost()方法被类重写。 但是对于登录表单的另一个示例,将覆盖service()方法。 我想知道为什么这两种不同的方法 – 我认为通常我们将自定义代码放入doPost() (或doGet() )并让service()保持不变。 使用这两种方法中的任何一种是否有任何原因,或者我可以在任何情况下使用这两种方法吗?

URI方案不是“文件”

我得到例外:“URI方案不是文件” 我正在做的是尝试获取文件的名称,然后从servlet中将该文件(从另一台服务器)保存到我的计算机/服务器上。 我有一个名为“url”的字符串,从上面这里是我的代码: url = Streams.asString(stream); //gets the URL from a form on a webpage System.out.println(“This is the URL: “+url); URI fileUri = new URI(url); File fileFromUri = new File(fileUri); onlyFile = fileFromUri.getName(); URL fileUrl = new URL(url); InputStream imageStream = fileUrl.openStream(); String fileLoc2 = getServletContext().getRealPath(“pics/”+onlyFile); File newFolder = new File(getServletContext().getRealPath(“pics”)); if(!newFolder.exists()){ newFolder.mkdir(); } IOUtils.copy(imageStream, […]

如果用户关闭浏览器,如何自动结束会话

我需要在用户处于非活动状态一段时间后自动结束会话,比如10分钟。 我们有一个方法 HttpSession session=request.getSession(); session.setAttribute(“User”, au); session.setAttribute(“name”, firstname); response.sendRedirect(“doLogin.jsp”); session.setMaxInterval(); 但即使用户活动了10分钟,这也将结束会话。 如何在用户关闭浏览器时结束会话?

来自IE中的servlet的持久性cookie

我有一个从servlet生成的cookie,我想要持久化 – 也就是说,设置cookie,关闭IE,重新启动它,并且仍然能够读取cookie。 我正在使用的代码如下: HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance() .getExternalContext().getResponse(); Cookie cookie = new Cookie(“someKey”, “someValue”); cookie.setMaxAge(7 * 24 * 60 * 60); response.addCookie(cookie); 这在firefox中运行良好,但在IE 6/7中,cookie不会在浏览器重启之间保存。 我已经检查了我在设置中可以想到的所有内容,但无法弄清楚导致cookie被删除的原因。 据我所知,使用正数调用setMaxAge会使cookie持久化。 任何想法为什么会出错? 编辑 我已经使用Olaf建议的更多信息技巧validation了cookie是否正在尝试设置为会话cookie,而不是持久cookie; 最大年龄设置为“会话结束”。 所以看起来似乎没有为IE设置最大年龄 – 我已经validation在Firefox中,最大年龄设置正确。 我仍然不知道发生了什么。