|
 |
servlets thread: compilation errors
Message #1 by "b. venkata ravi" <ravivenkata@u...> on Thu, 24 May 2001 06:57:14
|
|
The ServletContext.getInitParameter(), HttpSession.getAttribute(), and
HttpSession.setAttribute() methods were added in the Servlet 2.2 API, so
you'll get these errors if you're compiling against an earlier version of
the API. (Beware having an old servlet.jar in your CLASSPATH even if you're
using a more recent servlet engine.)
The precursors to HttpSession's new getAttribute() setAttribute() methods
were getValue() and putValue(); ServletContext.getInitParameter() is a new
feature of the 2.2 API.
Richard Huss
Technical Architect, Wrox Press Ltd
richardh@w...
www.wrox.com
-----Original Message-----
From: b. venkata ravi [mailto:ravivenkata@u...]
Sent: Thursday, May 24, 2001 7:57 AM
To: Servlets
Subject: [servlets] compilation errors
Hai Java friends,
I am getting compilation errors for chat program. please give
solution. Thanks in advance.
Compilation errors:
ChatRoomServlet.java:14: Method getInitParameter(java.lang.String) not
found in interface javax.servlet.ServletContext.
chatRoomPath = context.getInitParameter("CHATROOM_PATH");
^
ChatRoomServlet.java:15: Method getInitParameter(java.lang.String) not
found in interface javax.servlet.ServletContext.
listRoomsPath = context.getInitParameter("LISTROOMS_PATH");
^
ChatRoomServlet.java:78: Method getAttribute(java.lang.String) not found
in interface javax.servlet.http.HttpSession.
String profileName = (String) session.getAttribute("profileName");
^
ChatRoomServlet.java:86: Method setAttribute(java.lang.String,
java.lang.String) not found in interface javax.servlet.http.HttpSession.
session.setAttribute("profileName", profileName);
^
ChatRoomServlet.java:94: Method setAttribute(java.lang.String,
java.lang.String) not found in interface javax.servlet.http.HttpSession.
session.setAttribute("profileName", profileName);
^
ChatRoomServlet.java:105: Method getAttribute(java.lang.String) not found
in interface javax.servlet.http.HttpSession.
String roomName = (String) session.getAttribute("roomName");
^
ChatRoomServlet.java:114: Method setAttribute(java.lang.String,
java.lang.String) not found in interface javax.servlet.http.HttpSession.
session.setAttribute("roomName", roomName);
^
ChatRoomServlet.java:122: Method setAttribute(java.lang.String,
java.lang.String) not found in interface javax.servlet.http.HttpSession.
session.setAttribute("roomName", roomName);
^
8 errors
ChatRoomServlet.java:
---------------------
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.util.*;
public class ChatRoomServlet extends HttpServlet {
String chatRoomPath;
String listRoomsPath;
public void init() {
ServletContext context = getServletContext();
chatRoomPath = context.getInitParameter("CHATROOM_PATH");
listRoomsPath = context.getInitParameter("LISTROOMS_PATH");
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
ChatRoom room = getRoom(req, res);
if (room == null) {
return; // This should not happen.
}
// Check if it's a request for a message list or a form
String listPar = req.getParameter("list");
if (listPar != null && listPar.equals("true")) {
writeMessages(out, room, getProfileName(req));
} else {
out.println("<HTML>");
out.println("<BODY>");
out.println("<FORM METHOD=\"POST\" ACTION=\""
+ res.encodeUrl(chatRoomPath) + "\" TARGET=\"_top\">");
out.println("<p>Enter your message:</p>");
out.println("<INPUT NAME=\"msg\" SIZE=\"30\">");
// Add a Submit button
out.println("<P><INPUT TYPE=SUBMIT VALUE='Send Message'>");
// Add an Exit button
out.println("</FORM>");
out.println("<FORM ACTION=\"" + res.encodeUrl(listRoomsPath)
+ "\" METHOD=\"GET\" TARGET=\"_top\">");
out.println("<INPUT TYPE=SUBMIT VALUE=Exit>");
out.println("</FORM>");
out.println("</BODY></HTML>");
}
out.close();
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
res.setContentType("text/html");
ChatRoom room = getRoom(req, res);
if (room == null) {
return;
}
String profileName = getProfileName(req);
// Save message if any
String msg = req.getParameter("msg");
if (msg != null && msg.length() != 0) {
room.addChatEntry(new ChatEntry(profileName, msg));
}
writeFrame(res, room);
}
private String getProfileName(HttpServletRequest req) {
HttpSession session = req.getSession(true);
String profileName = (String) session.getAttribute("profileName");
if (profileName == null) {
// Entered a room for the first time?
profileName = req.getParameter("profileName");
if (profileName == null || profileName.length() == 0) {
profileName = "A spineless spy";
}
session.setAttribute("profileName", profileName);
} else {
// Entered a new room with a new name?
String newName = req.getParameter("profileName");
if (newName != null && newName.length() > 0
&&!newName.equals(profileName)) {
profileName = newName;
session.setAttribute("profileName", profileName);
}
}
return profileName;
}
private ChatRoom getRoom(HttpServletRequest req,
HttpServletResponse res) throws IOException {
HttpSession session = req.getSession(true);
PrintWriter out = res.getWriter();
String roomName = (String) session.getAttribute("roomName");
if (roomName == null) {
// Just entered?
roomName = req.getParameter("roomName");
if (roomName == null || roomName.length() == 0) {
writeError(out, "Room not specified");
return null;
}
session.setAttribute("roomName", roomName);
} else {
// Entered a new room?
String newRoom = req.getParameter("roomName");
if (newRoom != null && newRoom.length() > 0
&&!newRoom.equals(roomName)) {
roomName = newRoom;
session.setAttribute("roomName", roomName);
}
}
HashMap roomList =
(HashMap) getServletContext().getAttribute("roomList");
ChatRoom room = (ChatRoom) roomList.get(roomName);
if (room == null) {
writeError(out, "Room " + roomName + " not found");
return null;
}
return room;
}
private void writeError(PrintWriter out, String msg) {
out.println("<HTML>");
out.println("<HEAD><TITLE>Error</TITLE></HEAD>");
out.println("<BODY>");
out.println("<H1>Error</H1>");
out.println(msg);
out.println("</BODY></HTML>");
}
private void writeFrame(HttpServletResponse res,
ChatRoom room) throws IOException {
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>" + room.getName() + "</TITLE></HEAD>");
out.println("<FRAMESET ROWS='50%,50%' BORDER=0 FRAMEBORDER=NO>");
out.println("<FRAME SRC=\"" + res.encodeUrl(chatRoomPath)
+ "?list=true\" NAME=\"list\" SCROLLING=\"AUTO\">");
out.println("<FRAME SRC=\"" + res.encodeUrl(chatRoomPath)
+ "?list=false\" NAME=\"form\" SCROLLING=\"AUTO\">");
out.println("<NOFRAMES>");
out.println("<BODY>");
out
.println("Viewing this page requires a browser capable of displaying
frames.");
out.println("</BODY>");
out.println("</NOFRAMES>");
out.println("</FRAMESET>");
out.println("</HTML>");
out.close();
}
private void writeMessages(PrintWriter out, ChatRoom room,
String profileName) {
StringBuffer sb = new StringBuffer();
out.println("<HTML>");
out.println("<HEAD><META http-equiv=\"refresh\" content=\"5
\"></HEAD>");
out.println("<BODY>");
out.println("<B>Room: " + room.getName() + "</B><BR>"
+ "<B>Identity: "
+ profileName + "</B><BR>");
// List all messages in the room
if (room.size() == 0) {
out
.println("<FONT COLOR=RED>There are no messages in this room
yet</FONT>");
} else {
Iterator entries = room.iterator();
while (entries.hasNext()) {
ChatEntry entry = (ChatEntry) entries.next();
if (entry == null) {
continue;
}
String entryName = entry.getProfileName();
if (entryName.equals(profileName)) {
out.print("<FONT COLOR=BLUE>");
}
out.println(entryName + " : " + entry.getMessage() + "<BR>");
if (entryName.equals(profileName)) {
out.print("</FONT>");
}
}
}
out.println("</BODY></HTML>");
}
}
with regards
ravi
|
|
 |