C/S架构和B/S架构是软件发展过程中出现的两种软件架构方式
http://tomcat.apache.org/
停止
端口的取值范围是:0-65535。
在这个取值范围中1023以下的端口已经分配给了常用的一些应用程序,这个数字以后的端口部分被使用,所以网络编程可用的端口一般在1024之后选取。
修改端口号之后必须要重启才能生效
方式一:webapps目录
方式二:
配置:web.xml
<servlet>
<servlet-name>myservlet-name>
<servlet-class>com.cykj.servlet.MyServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>myservlet-name>
<url-pattern>/myservleturl-pattern>
servlet-mapping>
开发版(热部署),发布版
Servlet接口
GenericServlet抽象类:简化Servlet
**HttpServlet类:**与协议有关的Servlet(推荐)
404
500
Servlet配置同名
Servlet路径错误
通过init方法测试
@WebServlet
注意:注解和web.xml不冲突,可以共存。但是不会这么做
工作中还是用web.xml配置比较多,它是各个版本通用的
get请求和post请求
request的主要方法
注册案例:
添加action地址:
中文乱码问题
改为post方式:method改为post
post中文乱码
主要方法
输出客户端乱码
解决输出中文乱码
检查network
跳转
Aservlet
Bservlet
数据传递
转发的特点
页面跳转
数据传递
重定向的特点
转发与重定向的总结
过滤器的作用
编写过滤器
sout
//让请求继续
filterChain.doFilter(servletRequest,servletResponse);
sout
xml方式配置过滤器:
<filter>
<filter-name>filter-name>
<filter-classs>filter-classs>
filter>
<filter-mapping>
<filter-name>filter-name>
<url-pattern>url-pattern>//要拦截的资源路径
filter-mapping>
拦截请求
乱码处理
登入验证
Servlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。
针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。
在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service()方法,service方法再根据请求方式分别调用doXXX方法。
什么是cookie
创建cookie
//创建cookie
Cookie cookie = new Cookie("acc","zhangsan");
//将cookie响应给客户端
resp.addCookie(cookie);
设置cookie的访问路径
cookie.setPath("/myServlet/get");//设置只能让项目中的get这个Servlet可以访问
设置cookie的有效期
cookie.setMaxAge(60*60);//设置cookie有效期为1小时(默认是浏览器关闭)
获取cookie
//通过request对象获取所有的cookie
Cookie[] cookies = req.getCookies();
//通过循环遍历cookie
if(null!=cookies){
for(Cookie cookie:cookies){
System.out.println(cookie.getName()+":"+cookie.getValue());
}
}
修改cookie
创建中文cookie
读取带中文的cookie
cookie的优缺点
获取session
//获取session
HttpSession session = request.getSession();
System.out.println(session.getId);
session通过cookie的方式发送给客户端
保存和获取session数据
//第一个Servlet中保存session数据
session.setAttribute("username","zhangsan");
//另一个Servlet中获取session的内容
HttpSession session = request.getSession();
String s = (String) session.getAttribute("username");
System.out.println("从session中获得了:"+s);
移除数据
HttpSession session = request.getSession();
session.removeAttribute("username");
session的生命周期
session.setMaxInactiveInterval(10);//有效期10秒
session.invalidate();//立即注销
request和session的区别