我是 java 新手,正在尝试通过 html servlet 从文件路径添加图像“space.gif”。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("<HTML>");
out.print("<HEAD><TITLE>Upload Image</TITLE></HEAD>");
out.print("<BODY>");
out.print("<img src='space.gif' alt='image' />");
out.print("</BODY>");
out.print("</HTML>");
out.close();
}
Run Code Online (Sandbox Code Playgroud) 我正在研究struts2。我使用下面的代码来检查用户是否已登录
public String execute()
{
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession(false);
System.out.println(session);
if(session == null)
{
return "UserLoggedIn";
}
return "success";
}
Run Code Online (Sandbox Code Playgroud)
当我第一次在控制台中访问打印会话值时,它打印 null。但是,当我通过刷新页面执行相同的操作时,它会打印如下所示的内容,最终让用户无需登录即可访问该页面。
org.apache.catalina.session.StandardSessionFacade@16f21478
Run Code Online (Sandbox Code Playgroud)
如何进行会话检查以查看用户是否登录。
非常感谢。
在执行任何请求之前(在 init 方法中),我需要在 init 方法中从服务器获取一些服务器属性到我的 servlet 。实际上,我需要获取有关此服务器连接器上所有工作的列表、所有工作中的 web 应用程序以及最重要的 - 端口号或连接器。所需的码头版本 - 最多 8 个版本,包括。
所以我需要类似的东西org.eclipse.jetty.server.Server,但不是嵌入式,而是来自现有服务器,我的 servlet 正在运行。就使用此信息操作的 webapp 部署程序而言,此信息应该在码头上。但我找不到在哪里。
我有一个 servlet,位于site.com/foo/BarServlet. 该 servlet 负责设置 cookie。问题是,当我设置 cookie 时,它们的路径设置为/foo. 这是否意味着位于 的任何 servletsite.com/SomeOtherServlet将无法访问这些 cookie?
如果是这样,有没有办法可以在整个域上设置 cookie?如果我尝试这样做cookie.setPath("/"),那么出于某种原因,当我尝试通过 删除 cookie 时cookie.setMaxAge(0),这没有任何效果并且它仍然存在。
为什么web.xml从servlet 3.0 中删除了?现在通过Java 完成配置。
出于好奇,我查看了 HttpServlet 类的代码,发现它的父类“GenericServlet”定义了在接口“ServletConfig”中声明的方法“getServletName()”。但是,如果 ServletConfig 的对象“sc”不为空,GenericServlet 的 getServletName() 方法会调用“sc.getServletName()”。我无法理解这个东西是如何工作的,因为当我在 eclipse 中按 ctrl+click 来查看该方法的实现时,它似乎在调用自己!HttpServlet 类中也没有覆盖实现!
这是 GenericServlet 实现的快照:
public String getServletName() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}
return sc.getServletName();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以在这方面启发我..
我只是想向我的 JSP 页面添加一些简单的 css。我的jsp页面位于以下目录;WebContent > WEB-INF>页面>Login.jsp | 我的 css 文件位于这里;WebContent > WEB-INF > css > Login.css
这是我的 JSP 代码。
<head>
<link rel="stylesheet" type="text/css" href="../css/Login.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
</head>
<body>
<div>
<form method="post">
<table>
<tr>
<td>
//some code
</td>
</tr>
<tr>
<td>
//some code
</td>
</tr>
<tr>
<td>
//some code
</td>
</tr>
</table>
</form>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
这是我的 CSS
table {
border-width: 1px;
border-color: black;
border-style: solid;
}
Run Code Online (Sandbox Code Playgroud)
我只是想在桌子周围做一个边框展示,看看它是否有效,而事实并非如此。我的桌子周围没有边框。
知道为什么这可能不起作用
java新手,这个问题与典型的java工作流程不同,需要非常有经验的架构师的一些帮助,来自node.js背景,试图基于我已经在node.js中实现的一些设计模式来实现一个架构和 PHP 以及一些前端语言(包括 Java Swing),我期待为 Java Servlet 实现相同的功能。
我知道在 Servlet 中 doGet、doPost 等是请求的入口点,并且通过多线程对所有传入请求同时实例化和重用 servlet 的单个实例。
为了让这些设计模式(另一个主题,需要它自己的线程)工作,我需要有一个超级级别的访问权限来获取这些 servlet 实例并将我的角色设置为代表/侦听器。
我已经读到 servlet 要么在第一个请求之后实例化,要么直接与容器一起加载,因此要实现这一点,我需要在启动时加载它们,以便我可以对它们执行操作。
同样,这个问题是不同的,可能需要进行一些讨论才能深入了解,以帮助我们交换有关彼此世界的事物。
简而言之,我需要以下两件事才能使其工作。
我开始研究servlet。代码服务程序:
package arver;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Created by 35717 on 30.03.2016.
*/
public class MainServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
PrintWriter out = resp.getWriter();
out.print("servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
Run Code Online (Sandbox Code Playgroud)
文件 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>arver.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MainServlet</servlet-name> …Run Code Online (Sandbox Code Playgroud) 我有一个表,其中有几行。例如带有航班预订的表。要删除一个预订,我需要有客户 ID 号和航班号。
考虑到我只有一个按钮可以尝试将这些值提交给我的 Servlet,我该怎么做?
我尝试隐藏一个按钮,但该解决方案似乎对我不起作用。我使用request.getParameter()(当然有 2 个单独的变量)来尝试获取两个值,但最后只捕获一个值,另一个为空。还有其他想法吗?
这是我的表的一个例子。
flight_id customer_id
Value 1 Value 2
Run Code Online (Sandbox Code Playgroud)
表单按钮:
<section class="about-info-area section-gap">
<div class="container">
<div class="row align-items-center">
<form method="post" action="/admin_reservations" id="form_reservation"></form>
<table class="table table-bordered table-striped" style="float: left;">
<caption style="text-align: center; caption-side: top"><h2>Liste des réservations</h2></caption>
<thead class="thead-dark">
<tr>
<th scope="col">N°Flight</th>
<th scope="col">N°Client</th>
<th scope="col">Flight price</th>
</tr>
</thead>
<tbody>
<% for (Reservation reservation : allReservations) { %>
<tr>
<th scope="row"><% out.println(reservation.getFlight().getFlightNum()); %></th>
<td><% out.println(reservation.getClientNum()); %></td>
<td><% out.println(reservation.getFlightPrice()); %> €</td>
<td align="center">
<input type="submit" …Run Code Online (Sandbox Code Playgroud)