标签: servlets

我的第一个servlet出了问题

这是我的servlet的代码......

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    private String message;

    public void init(){
        message="Hello World";
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<h1>"+message+"</h1>");
    }

    public void destroy(){
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用xampp的tomcat 7

这是我的web.xml文件

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
 metadata-complete="true">

<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我的web.xml位于%TOMCAT_HOME%/ webapps/ROOT/WEB_INF目录中,而我的HelloWorld.class位于%TOMCAT_HOME%/ webapps/ROOT/WEB_INF/classes目录中.

当我尝试从浏览器运行我的文件时,我输入

http://localhost:8080/HelloWorld

在地址栏中显示以下Servlet异常

type Exception report

message

description The server encountered an internal error () that …
Run Code Online (Sandbox Code Playgroud)

java servlets

0
推荐指数
1
解决办法
6791
查看次数

使用Javascript/Jquery访问Servlet响应属性

我正在使用带有Tomcat的Java servlet来显示HTML中的Places表.表行中的数据由名称,位置等信息组成,通过获取servlet响应数据并将其注入标记来获取.然而,一旦完成,我需要使用Javascript根据其值操纵"td"元素.因此,如果其中一个进入"td"元素的位置是"USA",我的Javascript函数将执行特定于"USA"元素的操作,例如使周围边框为红色,白色和蓝色.

我不想使用$ .ajax发送请求.我只想在脚本元素的范围内访问servlet响应返回的属性,就像我使用JSP scriptlet以下面的方式一样

<% request.getAttribute("location"); %>
Run Code Online (Sandbox Code Playgroud)

我有点惊讶我没有找到如何在线进行此操作,因为它似乎是任何使用servlet和JS的人的日常行为,但我搜索SO和Google无济于事.

javascript jsp servlets

0
推荐指数
1
解决办法
1万
查看次数

在调用Servlet之前运行Javascript函数

我正在学习Java Servlets,我正在做一个简单的家庭作业.我有一个包含a 的html页面form,它被提交给servlet,进行一些处理,并使用a printwriter来呈现带有结果的html页面.

现在,我想添加我熟悉的Javascript.有没有办法可以编写Javascript函数来验证表单中的数据,如果数据有效,那么调用servlet,否则,不要调用servlet?

html javascript java servlets

0
推荐指数
1
解决办法
1976
查看次数

如何使用servlet更改段落的文本?

我有一个段落,id = story我想使用servlet动态更改其文本.我该怎么做呢?我是新手并且使用getWriter().println()似乎创建了一个新文档而不是附加到现有文档.谢谢

html java jsp servlets

0
推荐指数
1
解决办法
1161
查看次数

转发和sendRedirect问题。“提交响应后无法调用sendRedirect()”

我想实现这一点。
在我的page1.jsp中,我有一个链接,该链接触发了一个servlet。

    <a href="Servlet">link1</a>
Run Code Online (Sandbox Code Playgroud)

因此,当用户按下link1时,除其他外,该servlet我想做两件事。
1将对象传递到下一页page2.jsp,
2将用户重定向到page2.jsp

在Servlet中,我写道:

     request.setAttribute("cis", myObjet);
     RequestDispatcher disp = getServletContext().getRequestDispatcher("/page2.jsp");
     disp.forward(request, response);
     response.sendRedirect("page2.jsp");
Run Code Online (Sandbox Code Playgroud)

运行该应用程序后,我在控制台中看到一条错误消息:

提交响应后无法调用sendRedirect()

我读了一些与此有关的主题,但我还没有解决。该应用程序也继续工作,尽管我在控制台中有此错误...非常感谢!

jsp servlets response.redirect forward

0
推荐指数
1
解决办法
2万
查看次数

我们可以通过多少种方式跟踪servlet中的会话?

servlet中跟踪会话的不同方法有哪些.是否可以使用隐藏文件?

java servlets java-ee

0
推荐指数
1
解决办法
2804
查看次数

servlet中的线程

在应用程序中,如果涉及多个servlet,则每次为不同的servlet创建新线程

对于ex我有2个servlet servlet 1和servlet 2都从相同的html表单获取rquest,一个通过锚标签,另一个通过表单

当链接被点击时,请求被发送到servlet,它再次向索引页面发送请求,并从那里提交表单,其中请求被发送到servlet 2

那么为servlet 1和servlet 2创建了两个线程,还是只创建了一个服务于两个servlet的线程?

java multithreading servlets

0
推荐指数
1
解决办法
5550
查看次数

在servlet的doGet()中使用静态编译模式是安全的 - matcher.replaceAll()

有没有:

    private static final String LUCENE_ESCAPE_CHARS = "[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?]";
    private static final Pattern LUCENE_PATTERN = Pattern.compile(LUCENE_ESCAPE_CHARS);
    private static final String REPLACEMENT_STRING = "\\\\$0";
Run Code Online (Sandbox Code Playgroud)

并在诸如doGet()servlet之类的多线程环境中使用以下内容?

String escaped = LUCENE_PATTERN.matcher(query).replaceAll(REPLACEMENT_STRING);
Run Code Online (Sandbox Code Playgroud)

我主要担心的是现在增加额外的延迟(例如由于锁定)或者存在发生错误的情况.

java multithreading tomcat servlets pattern-matching

0
推荐指数
1
解决办法
79
查看次数

Mysql是否在一个连接中同步执行语句?

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/","root", "password");
Run Code Online (Sandbox Code Playgroud)

让我们说在Java中,我们可以通过上面的代码创建一个mysql连接.从connection对象中,我们可以创建几个statement对象,如下所示:

statement = connection.createStatement();
Run Code Online (Sandbox Code Playgroud)

我想知道,如果我们在不同的线程中执行那些statement对象(通过调用statement.executeQuery),它们是否会在Mysql数据库中同步或异步执行?因为我所知道的是,mysql中的一个连接将作为一个线程处理,所以我的想法是,该连接创建的所有语句都将在其队列中进行调度.我对么?

所以,如果我有servlet以下内容:

public class HelloServlet extends HttpServlet {

   Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/","root", "password");  


   public void doGet(HttpServletRequest request, HttpServletResponse response)
               throws IOException, ServletException {

    statement = connection.createStatement();
   }
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码中,如果有多个用户同时连接到servlet它们,它们是否会相互阻塞,因为该语句不能同时并行执行?那么,他们必须在轮到他们之前等待之前的声明完成执行?有什么方法可以避免这种问题吗?

java mysql multithreading servlets database-connection

0
推荐指数
1
解决办法
1040
查看次数

String string = request.getParameter("data")为null

我正在编写一个servlet,它将接受来自AJAX请求的POST数据.

这是我从客户端发送的代码:

$.ajax({
            type: "POST",
            url: "urlservlet",
            data: "{type:'" + "country" + 
            "', country:'" + $('#country').val() +
            "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(response) {

            }
Run Code Online (Sandbox Code Playgroud)


这是servlet代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
                      throws ServletException, IOException {
    string test = request.getParameter("type");
}
Run Code Online (Sandbox Code Playgroud)

但问题是我总是得到等于null的类型.我不知道为什么.

请帮助我.

java ajax json servlets

0
推荐指数
1
解决办法
2980
查看次数