读书人

servlet衔接的有关问题

发布时间: 2011-12-12 22:59:56 作者: rapoo

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

读书人网 >Java Web开发

热点推荐