以前接触.net比较多,这几天学习Ajax,和身边的学Jsp的同学交流了一下。
了解一下Jsp的运行原理,发现其中的serverlet可以直接向浏览器输出,输出内容包括可以包括Html,其实就是可以动态构建页面。(当然Serverlet的功能不止这些)。这让我想到了asp.net中的*.ashx文件,他也是可以直接输出到浏览器动态构建页面。这就有点像了。
asp.net中的ProcessRequest 函数的参数HttpContext 是“封装有关个别 HTTP 请求的所有 HTTP 特定的信息”。而serlverlet中的doget,dopost函数中的参数:HttpServletRequest , HttpServletResponse 则分别和asp.net 中HttpContext 类中的request和reponse对应。 还是有点像的哈,大家说下自己的看法!
ashx文件:<%@ WebHandler Language="C#" Class="Handler" %>using System;
using System.Web;public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable {
get {
return false;
}
}}serverletpackage dbdao.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Sample extends HttpServlet {
public Sample () {
super();
}
public void destroy() {
super.destroy();
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getParameter("name");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void init() throws ServletException {
// Put your code here
}}
form action到serverlet
cd PDO_MYSQL-1.0.2
cp /usr/local/mysql/bin/mysql_config /usr/bin #防止编译的时候找不到mysql_config
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin #指定php-config目录
yum install mysql-devel #包含mysql对应的头文件,防止编译出错
make
make install
cd PDO_MYSQL-1.0.2
cp /usr/local/mysql/bin/mysql_config /usr/bin #防止编译的时候找不到mysql_config
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin #指定php-config目录
yum install mysql-devel #包含mysql对应的头文件,防止编译出错
make
make install