Tag: servlets

使用keycloak在servlet应用程序中获取用户角色

我正在使用keycloak来保护我的servlet。 我必须添加新角色并动态地将它们分配给用户。 它使用admin API在keycloak中工作,但我无法弄清楚如何在servlet中获取特定用户的角色。 我尝试了这个解决方案,但我得到了空集: protected void doPost(HttpServletRequest request, HttpServletResponse response) { … KeycloakSecurityContext context = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName()); Set roles = AdapterUtils.getRolesFromSecurityContext((RefreshableKeycloakSecurityContext) context); … }

HttpServletRequest无法解析

我导入了以下导入javax.servlet.http。*; 我想获得首选语言浏览器 HttpServletRequest request = ServletActionContext.getRequest(); Locale userPreferredLocale = request.getLocale(); 我得到一个错误HttpServletRequest无法解决。 如果可能的话,有人可以帮助我并给我一步一步的指导。 我不是一个java开发人员,而是一个.net,只是修复一个bug。 非常感谢

无法在Java Servlet中反序列化JSON

我的端点无法理解传入的JSON。 这是端点: import javax.ws.rs.Consumes; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.hibernate.Query; import org.hibernate.Session; import org.json.JSONObject; … @POST @Path(“/{department}/{team}”) @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response handleJSON(JSONObject json , @PathParam(“department”) String department, @PathParam(“team”) String team){ MyObj myObj = new MyObj(); myObj.setDepartment(department); myObj.setTeam(team); myObj.setPlatform(json.optString(“platform”)); saveObj(myObj); return Response.ok(true).build(); […]

JSP给页面带有俄文文本的问号

我正在实现JSP页面,从数据库中我得到一些列表并使用jquery-ui autocompletecombobox在JSP中显示它: Select MKB from list: 问题是当在浏览器中加载页面时,combobox中的值都是问号(预期的俄语字符)。 在同一个jsp文件中,我包含header.jsp,其中有以下行: 所以编码应该没问题。 源文件的编码也是UTF-8在jsp文件中还有一行: 我正在使用tomcat8和Java 7.我还尝试了另外一件事:将-Dfile.encoding = UTF-8添加到tomcat的启动参数中。 Servlet本身正在执行以下操作: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MkbDAO mkbDAO = new MkbDAO(); List mkbList = mkbDAO.getMKBList(); request.setAttribute(“mkbList”, mkbList); RequestDispatcher rd = getServletConfig().getServletContext().getRequestDispatcher(“/WEB-INF/jsp/diagList.jsp”); rd.include(request, response); } 我正在调试该servlet代码,并在调试器监视窗口中查看值,并且列表的值以正确的俄语字符显示。 你能帮忙解决这个问题吗?

没有JSF的Facelets

我正在学习Java语言并期待编写非常小的Web应用程序,因为Facelets似乎是JSP的替代品,并且JSF对于小型Web应用程序来说似乎有些过分,我是否可以学习Facelets并在没有整个JSF堆栈的情况下使用它? 或者我应该使用JSP来获取这些小型网络应用程序?

检查有效会话:isRequestedSessionIdValid()vs getSession(false)

我正在开发Java Servlets。 在检查用户是否已登录时,我想检查HTTP请求是否具有有效会话。 为了检查,我有两种可能性: (1) protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); if (session != null) { // user is logged in … } } 由于我将false作为参数传递,如果没有有效的会话已经存在,则没有创建新的会话,并且该函数返回null,我可以检查。 或者我这样做: (2) if (request.isRequestedSessionIdValid()) { // user is logged in … } 有什么区别,有什么优势/劣势吗? 或者这两个function或多或少相同?

servlet容器何时会中断我的线程?

我正在编写一个servlet,它在Java servlet容器中执行(例如,JBoss,Jetty,Tomcat,GlassFish)。 servlet容器中断运行我的HTTP请求处理程序的线程的原因是什么? 它会在关闭时才这样做吗? 当客户端没有响应时会这样做吗? 它是标准化的,还是任何容器都可以按照自己的意愿行事? 为了澄清,我不是在谈论中断我创建的新线程,只是在我的请求运行的servlet容器的线程上。 (虽然如果你在答案中提到新线程会发生什么事情会很有趣)。

删除servlet中的cookie的问题

我尝试使用此代码删除servlet中的cookie Cookie minIdCookie = null; for (Cookie c : req.getCookies()) { if (c.getName().equals(“iPlanetDirectoryPro”)) { minIdCookie = c; break; } } if (minIdCookie != null) { minIdCookie.setMaxAge(0); minIdCookie.setValue(“”); minIdCookie.setPath(“/”); res.addCookie(minIdCookie); } res.flushBuffer(); 但是这没有效果,也没有改变cookie属性。 我也尝试在这个servlet中添加一个cookie,这很好用。 为什么我无法更改现有cookie的属性。

如何将HttpServletRequest转换为String?

如何将HttpServletRequest转换为String ? 我需要解组HttpServletRequest但是当我尝试时,我的程序会抛出exception。 javax.xml.bind.UnmarshalException – with linked exception: [java.io.IOException: Stream closed] at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:197) at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168) at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137) at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184) at com.orange.oapi.parser.XmlParsing.parse(XmlParsing.java:33) 我尝试使用以下代码来解组HttpServletRequest 。 InputStreamReader is = new InputStreamReader(request.getInputStream()); InputStream isr = request.getInputStream(); ServletInputStream req = request.getInputStream(); 我的解析器方法: public root parse(InputStreamReader is) throws Exception { root mc = null; try { JAXBContext context = JAXBContext.newInstance(root.class); Unmarshaller […]

无法找到XML架构命名空间的Spring NamespaceHandler

我在eclipse中运行tomcat中的一些servlet代码。 它一直工作正常,但今天我收到错误Unable to locate Spring NamespaceHandler for XML schema namespace 。 完整错误如下所示: SEVERE: Allocate exception for servlet RunServlet org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx] Offending resource: class path resource [spring/dao.xml] 我已经看过关于这个错误的其他问题,但我真的不明白答案。 当我查看目标库时,我可以看到spring-tx-3.0.5.RELEASE.jar位于WEB-INF/lib 。 谁能帮我吗? 非常感谢! 编辑: dao.xml启动: 编辑:不确定这是否相关,但我正在研究mac book pro,最新的mac更新更新到Java 1.6,我刚刚将我的Java首选项切换到1.6。 编辑:我也在Tomcat日志中收到以下消息,但我认为我以前收到它并且我认为它不相关,但以防万一: INFO: Starting Servlet Engine: Apache Tomcat/7.0.14 […]