动态网页;以数据库技术为基础,不是独立在于服务器上的网页文件
servlet:
是一种web服务器编程技术
是继承httpservlet类的java类由支持servlet的web服务(tomcat)调用和启动运行
一个servlet负责一个或一组url访问请求,并返回相应的响应内容
B/S,C/S架构;
C/S:client/servlet
B/S:browser/servlet
比较:
C/s服务器负荷轻,维护升级成本高
B/S服务器负荷重,维护升级成本低
B/S工作原理:
浏览器——服务器——数据库
在浏览器 里把请求发给服务器(传递参数,服务器接收)在服务器调用dao类(有参数接收参数),操纵数据库
浏览器通过URL来访问服务器
写servlet:
1.创建类 extends javax.servlet.http.HttpServlet;
2.重写三个方法:
@Override
public void init() throws ServletException {
System.out.println("FirstServlet初始化");
super.init();
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(request+"\n"+response);
super.service(request, response);
}
@Override
public void destroy() {
System.out.println("FirstServlet销毁");
super.destroy();
}
3.给servlet配备url地址,供浏览器访问servlet使用
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.zhfly.web.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/first/</url-pattern>
</servlet-mapping>
404--资源未找到
500--服务器内部错误
servlet的init()方法:
默认情况下
servlet接收和返回数据
1.直接在访问地址后加数据:
http://127.0.0.1/servlet/first/?name=用户名
接收: request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
返回:PrintWriter out=response.getWriter();
out.println("接收的用户名:"+name);
2.表单发送数据: