学姐给的一个网址,是一个httpservlet的详解,有讲解和实例。看着照做了 但是有点问题,又改了改 http://blog.csdn.net/syhhl007/article/details/1724675
先创建了个java web项目,又建了个基于数据库的rest风格的web服务,然后建了个Servlet文件,具体这么写
package text;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//import javax.servlet.*;
//import javax.servlet.http.*;
import java.io.*; //这个必须写,要不下面的BufferedReader用不了
public class NewServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) //这里是doGet函数了进行修改,一边poster中GET时能够有反应
throws ServletException, IOException {
String clientName=request.getParameter("clientName");
if(clientName!=null)
clientName=new String(clientName.getBytes("ISO-8859-1"),"GB2312");
else
clientName="我的朋友";
//第四步:生成HTTP响应结果
PrintWriter out;
String title="HelloServlet";
String heading1="HelloServlet的doGet方法的输出:";
//set content type
response.setContentType("text/html;charset=GB2312");
//write html page
out=response.getWriter();
out.print("<HTML><HEAD><TITLE>"+title+"</TITLE>");
out.print("</HEAD><BODY>");
out.print(heading1);
out.println("<h1><p>"+clientName+":您好</h1>");
out.print("</BODY></HTML>");
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) //这里是doPost函数,进行修改以便poster中POST时有反应
throws ServletException, IOException {
String clientName=request.getParameter("clientName");
if(clientName!=null)
clientName=new String(clientName.getBytes("ISO-8859-1"),"GB2312");
else
clientName="我的朋友";
//第四步:生成HTTP响应结果
PrintWriter out;
String line; //从下边开始,就是poster中对内容的接收了,poster下面的内容是通过request得到的,我们可以在netbeans的输出中看到
StringBuffer buffer = new StringBuffer();
BufferedReader reader = request.getReader();
while (( line = reader.readLine()) != null){
buffer.append(line);
}
String xml =buffer.toString();
System.out.println(xml); //到这为止
String title="HelloServlet";
String heading1="HelloServlet的doGet方法的输出:";
//set content type
response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("GB2312");
request.setCharacterEncoding("GB2312");
//write html page
out=response.getWriter();
out.print("<HTML><HEAD><TITLE>"+title+"</TITLE>");
out.print("</HEAD><BODY>");
out.print(heading1);
out.println("<h1><p>"+clientName+":您好</h1>");
out.print("</BODY></HTML>");
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
这样的话你运行这个项目,对出来的网页打开poster,url中输入 http://localhost:8080/WebApplication3/NewServlet
然后在下边的内容中随便写点,在进行POST,就可以在netbeans的输出中看到了。