Hej! Jeg vil lave en servlet, så man kan skrive til en fil i samme bibliotek
som servlet'en ligger. Men jeg ved ikke rigtig hvordan? Koden jeg har leget
indtil videre( som ikke kan gøre jobbet) er :
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MainServ extends HttpServlet {
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
static String exam_name=null;
static String course_name=null;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.println("<html>");
out.println("<body>");
out.println("<head>");
String title = rb.getString("requestparams.title");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("<h3>" + title + "</h3>");
exam_name = request.getParameter("exam");
course_name = request.getParameter("course");
out.println(rb.getString("requestparams.params-in-req") + "<br>");
if (exam_name != null || course_name != null) {
out.println(rb.getString("requestparams.exam"));
out.println(" = " + exam_name + "<br>");
out.println(rb.getString("requestparams.course"));
out.println(" = " + course_name);
} else {
out.println(rb.getString("requestparams.no-params"));
}
out.println("<P>");
out.print("<form action=\"");
out.print("MainServ\"");
out.println("method=POST>");
out.println(rb.getString("requestparams.exam"));
out.println("<input type=text size=20 name=exam>");
out.println("<br>");
out.println(rb.getString("requestparams.course"));
out.println("<input type=text size=20 name=course>");
out.println("<br>");
out.println("<input type=submit>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}//method doGet ends
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
String newline;
String filename="dbExam.dat";
PrintWriter out = response.getWriter();
newline=exam_name + "|" + course_name;
// class control er den klasse, som har methoden til at skrive til
filen
// methoden i Control klasse returnerer boolean.
// problemet er at jeg får intet at vide fra dette metode kald.
Control c= new Control(filename);
if (c.addToFile(newline,
name)){
out.println("<add to file completed>");
} else{out.println("<add to file failed>");
}
doGet(request, response);
}//method doPost ends
}
Jeg tror der er noget galt med den måde, som request og respond i doGet og doPost metode er brugt, og at det skal arrangeres på en anden måde. Nogen der kan hjælpe mig med det? Eller generale tips om hvad princippet er for at bruge doGet og doPost (skrive og læse fra/til en fil)? Det er apcahe tomcat jeg bruger som server.
Mvh/Emil
|