标签: servlets

ServletOutputStream.write有时会抛出索引越界

我遇到了一个我无法再生的问题.我读了一个文件,并将该文件的内容写入ServletOutputStream.

                        byte[] buff = new byte[65536];

                        int bytesRead = dataStream.read(buff);
                        response.getOutputStream().write(buff, 0, bytesRead);
Run Code Online (Sandbox Code Playgroud)

我注意到有些文件(小于20KB)在写入输出流时抛出IndexOutofBoundsException,但在其他时候,一切都可以找到.我的意思是,没有报告IndexOutOfBoundsException.

这是我得到的堆栈跟踪:

java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:331)
        at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
        at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
        at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:88)
        at com.abc.web.DeliverData.serviceRequest(DeliverData.java:101)
Run Code Online (Sandbox Code Playgroud)

我的代码中的第101行是:response.getOutputStream().write(buff,0,bytesRead);

任何想法为什么即使使用相同的文件进行测试也不会始终报告问题?

java servlets outputstream

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

如何从JSP获取java类的对象

我有一个结果jsp页面,它打印java类的字符串变量.有人能给我任何想法.

我使用简单的httpServlet作为动作类.

Class A 
{  
String name;  
public void setName()
{  
   this.name = callMethod(); // somehow it assigns the value. Nothing to do with problem  
}  
}
Run Code Online (Sandbox Code Playgroud)

的Result.jsp

这里我需要打印String的当前值

java jsp servlets

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

是否必须在web.xml文件中指定servlet过滤器?

我的公司有一个servlet过滤器,我们希望包含在各种第三方Java Web应用程序中.编辑供应商的web.xml文件有些犹豫不决.这种犹豫是否合理?还有另一种方法吗?有问题的应用服务器是Tomcat和Weblogix ......

java servlets web-applications servlet-filters

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

java servlet中的html表单处理

我正在构建一个java servlet来响应某些HTML表单.这是一个简单的测试形式:

 <FORM action="http://somesite.com/prog/adduser" method="post">
    <P>
    <LABEL for="firstname">First name: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Last name: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">email: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male"> Male<BR>
    <INPUT type="radio" name="sex" value="Female"> Female<BR>
    <INPUT type="submit" value="Send"> <INPUT type="reset">
    </P>
 </FORM>
Run Code Online (Sandbox Code Playgroud)

在服务器端,我得到HttpRequest好了.但是当我得到这样的参数时:

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    String firstName = req.getParameter("firstname");
    String lastName = req.getParameter("lastname");
    String sex = req.getParameter("sex");
    String email = req.getParameter("email");

}
Run Code Online (Sandbox Code Playgroud)

只有"性"才行.我已经在这几个小时没有理解为什么"性"与其他人不同.所有其他参数均为​​空.好吧,它是唯一的"无线电"类型,但是有一种特殊的方式来获取其他参数吗?

谢谢!

html java servlets

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

Java序列化异常消息

在我的盒子上本地运行应用程序时,应用程序运行正常.部署到QA时,会收到以下错误.我在本地和QA运行Tomcat 5.5.23.该应用程序还使用Spring MVC.

ERROR 2011-03-01 16:41:42:异常加载会话来自持久存储java.io.WriteAbortedException:写入已中止; java.io.NotSerializableException:java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)中的java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)中的java.io.NotSerializableException:com.everbank.uft.entities.ldc.VoidReason,位于java的java.io.ObjectInputStream.readObject(ObjectInputStream.java:351). util.ArrayList.readObject(ArrayList.java:593)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. java:25)at java.io.Object.Stotod.invoke(Method.java:597)at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849 )java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)at org.apache .catalina.session.StandardSession.readObject(StandardSession.java:1402)a org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:931)位于org.apache.catalina.session.StandardManager.load的org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394) (StandardManager.java:321)位于org.apache的org.apache.catalina.session.StandardManager.start(StandardManager.java:637)org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:432). catalina.core.StandardContext.start(StandardContext.java:4160)org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 740)在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)在org.apache.catalina.startup.HostConfig .deployDescriptors(HostConfig.java:553)org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)org.apache.catalina.startup.HostConfig.start(HostConf)ig.java:1138)在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)在org.apache.catalina .core.ContainerBase.start(ContainerBase.java:1022)org.apache.catalina.core.StandardHost.start(StandardHost.java:736)org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) )org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)位于org.apache.catalina.core.StandardServer的org.apache.catalina.core.StandardService.start(StandardService.java:448).启动(StandardServer.java:700)在org.apache.catalina.startup.Catalina.start(Catalina.java:552)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)在org.apache.catalina.star上的java.lang.reflect.Method.invoke(Method.java:597)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)tup.Bootstrap.start(Bootstrap.java:295)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)引起:java.io.NotSerializableException:com.everbank.uft.entities.ldc. java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)中的java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)中的VoidReason,位于sun.reflect的java.util.ArrayList.writeObject(ArrayList.java:570) at.MativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method .java:597)java.io.Object.Start.Drite.StriteOdenialObject(ObjectOutputStream.java:1392)java.io.ObjectOreamputStream.writeSerialData(ObjectOutputStream.java:1461)的java.io.Object.StreamClass.invokeWriteObject(ObjectStreamClass.java:945)在java.io.ObjectOut上的java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1478)中的putStream.writeObject(ObjectOutputStream.java:326)位于org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:948)org .apache.catalina.session.StandardManager.doUnload(StandardManager.java:517)位于org.apache.catalina.session.StandardManager.stop(StandardManager.atload) .java:667)org.apache.catalina.core.StandardContext.stop(StandardContext.java:4363)位于org.apache.catalina的org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:893). startup.HostConfig.undeployApps(HostConfig.java:1180)在org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1151)在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313) org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java):1055)org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1067)org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448)org.apache.catalina.core.标准服务.stop(StandardService.java:510)位于org.apache.catalina.core.StandardServer.stop(StandardServer.java:734)org.apache.catalina.startup.Catalina.stop(Catalina.java:602)org .apache.catalina.startup.Catalina.start(Catalina.java:577)... 6更多错误2011-03-01 16:42:49:UserTrackingFilter.doFilter()失败.消息:Servlet执行引发了异常javax.servlet.ServletException:Servlet执行在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain)引发异常.java:188)在org.apache.catalina的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)的com.everbank.uft.filters.UserTrackingFilter.doFilter(UserTrackingFilter.java:65). core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)at com.everbank.uft.filters.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:36)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)at org .apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)org.apache.coyote.http11.Http11Processor.process(Http11Processor) .java:870)org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)at org. apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)在org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:685)在java.lang.Thread.run( Thread.java:619)

java serialization spring tomcat servlets

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

tomcat启动时自动启动Servlet ...?

我有一个要求,我在这列中有一个表是phno,name,id.当我更新表时,一个servlet需要读取该表并连续收集phno,而不向该servlet发出任何请求.然后我们可以获得新的phno,并将短信发送给那些人.

任何人都有这个发送短信的想法.我正在使用java spring,tomcat.有没有其他方法可以做到这一点.

spring tomcat servlets

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

servlet程序中抛出的java.lang.nullpointer异常

我正在为一个只有5个问题的在线考试创建一个3层Web应用程序.我使用html并设计了一个servlet来将数据发布到mysql数据库,我将其命名为'test',表格为'st1'.我使用MyEclipse Blue 8.6.1,它有一个内置的MyEclipse Tomcat 6.0.13.doPost()方法中servlet的编码如下:

try
{
    String url="jdbc:mysql://localhost:3306/test";
    Class.forName("com.mysql.jdbc.Driver");
    connect=DriverManager.getConnection(url,"root","root");
    message="Connection Sucessfull";
}
catch(ClassNotFoundException cnfex){
    cnfex.printStackTrace();
}
catch(SQLException sqlex){
    sqlex.printStackTrace();
}
catch(Exception excp){
    excp.printStackTrace();
}
seat_no=request.getParameter("Seat_No");
name=request.getParameter("Name");
ans1=request.getParameter("group1");
ans2=request.getParameter("group2");
ans3=request.getParameter("group3");
ans4=request.getParameter("group4");
ans5=request.getParameter("group5");
if(ans1.equals("True"))
    Total+=2;
if(ans2.equals("False"))
    Total+=2;
if(ans3.equals("True"))
    Total+=2;
if(ans4.equals("False"))
    Total+=2;
if(ans5.equals("False"))
    Total+=2;
try
{
    Statement stmt=connect.createStatement();
    String query="INSERT INTO st1("+"seat_no,name,marks"+")VALUES('"+seat_no+"','"+name+"','"+Total+"')";
    stmt.executeUpdate(query);
    stmt.close();
}
Run Code Online (Sandbox Code Playgroud)

当我编译应用程序时,我不断收到异常:

HTTP Status 500 - 

type Exception report
message: 
description The server encountered an internal error () that prevented it from fulfilling this request.
exception : …
Run Code Online (Sandbox Code Playgroud)

java mysql myeclipse servlets

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

Java中的会话

我有一个ShoppingCart类,它包含CartItems(在ArrayList中).我想要的是每当会话存在时(当用户将项目添加到购物车时),它应该请求上一个会话并将其显示在ViewCart jsp页面上.

我现有的代码给了我很多麻烦,所以我想要一个清晰的概念来说明应该如何完成.作为ac #code,我认为我的逻辑在java中是错误的.这是我的c#代码

public class ShoppingCart
{
    #region ListCart

    public List<CartItem> Items { get; private set; }

    #endregion

    #region CartSession


    public static readonly ShoppingCart Instance;

    static ShoppingCart()
    {

        if (HttpContext.Current.Session["ASPNETShoppingCart"] == null)
        {
            Instance = new ShoppingCart();
            Instance.Items = new List<CartItem>();
            HttpContext.Current.Session["ASPNETShoppingCart"] = Instance;
        }
        else
        {
            Instance = (ShoppingCart)HttpContext.Current.Session["ASPNETShoppingCart"];
        }
    }}
Run Code Online (Sandbox Code Playgroud)

由于我不是java或jsp的专家,我很难搞清楚这一点.我该怎么办?

java session shopping-cart jsp servlets

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

在java中调用servlet

我如何调用Servlet?和doPost和doGet有什么区别?欢迎任何解释链接

谢谢

java post servlets get

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

如何为iText生成的PDF显示"另存为"对话框?

当我发送由serve中的iText生成的PDF文件时,我想显示另存为对话框.我怎样才能做到这一点?

java servlets download

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