首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

servlet衔接的有关问题

2011-12-12 
servlet衔接的问题我在一个包下写了两个servlet:packagetalkingimportjavax.servlet.*importjavax.servl

servlet衔接的问题
我在一个包下写了两个servlet:
package   talking;

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


public   class   UserServlet   extends   HttpServlet   {
        private   static   final   String   CONTENT_TYPE   =   "text/html;   charset=GBK ";

        //Initialize   global   variables
        public   void   init()   throws   ServletException   {
        }

        //Process   the   HTTP   Get   request
        public   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)   throws
                        ServletException,   IOException   {
                response.setContentType(CONTENT_TYPE);
                PrintWriter   out   =   response.getWriter();
                out.println( " <html> ");
                out.println( " <head> <title> UserServlet </title> </head> ");
                out.println( " <body   bgcolor=\ "#ffffff\ "   onload= 'javascript:frm.userName.focus '> ");
                out.println( " <form   method=post   action= '/Servlet/mainservlet '   name   = 'frm '> ");
                out.println( " <center> 请输入你的呢称 </center> ");
                out.println( " <center> <input   type=text   name= 'userName '> ");
                out.print( " <input   type=submit   value= '聊天 '> </center> </form> ");
                out.println( " </body> ");
                out.println( " </html> ");
                out.close();
        }

        //Process   the   HTTP   Post   request
        public   void   doPost(HttpServletRequest   request,   HttpServletResponse   response)   throws
                        ServletException,   IOException   {
                doGet(request,   response);
        }

        //Clean   up   resources
        public   void   destroy()   {
        }
}

package   talking;

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

public   class   MainServlet   extends   HttpServlet   {
        private   static   final   String   CONTENT_TYPE   =   "text/html;   charset=GBK ";



        //Initialize   global   variables
        public   void   init()   throws   ServletException   {
        }

        //Process   the   HTTP   Get   request
        public   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)   throws
                        ServletException,   IOException   {
                response.setContentType(CONTENT_TYPE);
                response.setCharacterEncoding( "GBK ");
                PrintWriter   out   =   response.getWriter();
                String   userName   =   request.getParameter( "userName ");
                out.println( " <html> ");
                out.println( " <body> ");
                if   (userName   ==   null   ||   userName.equals( " "))   {
                        out.println(
                                        " <h1   style= 'color:red '   align= 'center '> 请返回并输入有效的用户名! </h1> ");
                }   else   {
                        ArrayList   list   =   (ArrayList)   getServletContext().getAttribute(
                                        "users ");
                        if   (list   ==   null)   {
                                list   =   new   ArrayList();
                        }
                        if   (!list.contains(userName))   {
                                list.add(userName);
                                HttpSession   hs   =   request.getSession();
                                hs.setAttribute( "userName ",   userName);
                                getServletContext().setAttribute( "users ",   list);
                                out.println( " <frameset   rows= '80%,* '> ");
                                out.println( " <frame   src= 'topservlet?name= "   +   userName   +   " '> ");


                                out.println( " <frame   src= 'messageservlet?name= "   +   userName   +
                                                        " '> ");
                                out.println( " </frameset> ");
                        }   else   {
                                out.println(
                                                " <h1   style= 'color:red '   align= 'center '> 正在使用的用户! </h1> ");
                        }
                }
                out.println( " </body> ");
                out.println( " </html> ");
                out.close();
        }
}

我在UserServlet中的文本框中什么也不输入,直接点 '聊天 ',应该衔接到MainServlet并显示请返回并输入有效的用户名!可为什么点了后出现404错误呢

[解决办法]
发现个语法错误:out.println( " <body bgcolor=\ "#ffffff\ "
onload= 'javascript:frm.userName.focus '> ");
//onload= 'javascript:frm.userName.focus() '> ");
404找不到请求资源,具体提示你没给出,也搞不清楚具体原因
out.println( " <form method=post action= '/Servlet/mainservlet ' name = 'frm '> ");
检查下这句action= '/Servlet/mainservlet ',看看mainservlet是不是在Servlet站台下
看看有没有写错.
下面是我写的,运行正常:
package chatweb;

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

public class UserServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK ";

//Initialize global variables
public void init() throws ServletException {
}

//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println( " <html> ");
out.println( " <head> <title> UserServlet </title> </head> ");
out.println(
" <body bgcolor=\ "#ffffff\ " onload= 'javascript:frm.userName.focus() '> ");
out.println(
" <form method=post action= '/ChatModule/mainservlet ' name= 'fmt '> <center> " +
"请输入您的昵称: <br /> <input type= 'text ' name= 'userName ' /> <input type= 'submit ' value= '聊天 ' /> </center> </form> ");
out.println( " </body> ");
out.println( " </html> ");


out.close();
}

//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}

//Clean up resources
public void destroy() {
}
}
////////////////////
package chatweb;

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

public class MainServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK ";

//Initialize global variables
public void init() throws ServletException {
}

//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
request.setCharacterEncoding( "GBK ");
String userName = request.getParameter( "userName ");
if (userName == null || userName.equals( " ")) {
out.println(
" <h1 stype= 'color:red ' align= 'center '> 请返回并输入有效的用户名 </h1> ");
} else {
Vector vec = (Vector) getServletContext().getAttribute( "userArray ");
if (vec == null) {
vec = new Vector();
}
if (!vec.contains(userName)) {
vec.add(userName);
HttpSession ses = request.getSession();
ses.setAttribute( "userName ", userName);
this.getServletContext().setAttribute( "userArray ", vec);
out.println( " <html> ");
out.println( " <frameset rows= '80%,* '> ");
out.println( " <frame src= 'topservlet?name= " + userName + " '> ");
out.println( " <frame src= 'messageservlet?name= " + userName +
" '> ");
out.println( " </frameset> ");
out.println( " </html> ");
} else {
out.println( " <h1 style= 'color:red ' align= 'center '> 正在使用的用户ID </h1> ");
}

out.close();
}
}

//Process the HTTP Post request
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}

//Clean up resources
public void destroy() {
}
}

[解决办法]
ok

热点排行