以下内容遗漏项目发表设置
1.
2.动态网页(PHP,JSP,ASP)是依赖数据库实时生成的界面
3.C/S架构: Client/Serve 例如:QQ,MSN
B/S架构:Browser/Server
区别在于:服务器负荷和维护升级成本
4.servlet特殊java类,只能放在服务器中运行。客户端是通过URL来访问servlet,servlet返回HTML给服务器,服务器再把HTML传给客户端。
5.第一个servlet程序
package com.three.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ThreeAction extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("this is kaja3 speaking!!!");
resp.getWriter().println("<h1>duck go go go</h1>");
resp.getWriter().println("<h2>duck go go go</h2>");
resp.getWriter().println("<h2>duck go go go</h2>");
resp.getWriter().println("<h1>duck go go go</h1>");
}
}
注意:还要在web.xml中进行配置
<servlet>
<servlet-name>three</servlet-name>
<servlet-class>com.three.servlet.ThreeAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>three</servlet-name>
<url-pattern>/3</url-pattern>
</servlet-mapping>
以上servlet编写总结为:(1)extends (2)重写service (3)配置servlet ,servlet-mapping
6.service ,doget ,dopost:
有service时要调用doget, dopost, 要呼叫super.service
7.重定向:resp.sendRedirect()
package com.three.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestRedirect extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.sendRedirect("version01.html");
return;
}
}
8.请求转发:req.getRequestDispatcher().forward(req, resp);
package com.three.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestgetRequestDispatcher extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.getRequestDispatcher("version01.html").forward(req, resp);
}
}
9.HttpServletRequest对象:
(1)req.getParameter()
(2)类似hashmap功能
设置属性 setAttribute("key","value")
获得属性 getAttribute("key")
去除属性 removeAttribute("key")
遍历属性 getAttributeNames()
10.获得表单传回数据:
表单代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="version01" action="model" method="get">
userid: <input type=text name=id /></br>
username: <input type=text name=name /></br>
location: <input type=text name=loc /></br>
<input type="submit" value="submit"/>
</form>
</body>
</html>
获取表单 hot values:
<pre name="code" class="html"> //将String强制转换成int
String sid = req.getParameter("id");
int id = Integer.parseInt(sid);
String name=req.getParameter("name");
String loc=req.getParameter("loc");
System.out.println(id+"---"+name+"---"+loc);
out.println(req.getParameter("id"));
out.println(req.getParameter("name"));
out.println(req.getParameter("loc"));
testPreparedStatement( id, name, loc);