企业网站推广定义,网站服务器建设价格,工程备案信息查询,响应式网站建设公司'Tomcat
轻量级应用服务器、JSP、Servlet
Tomcat目录结构 在IDEA中创建web项目
在这里不使用maven构建项目#xff0c;这种方式后面会更新
新建一个java项目File - Project Settings - Facets - - Web - OK ( 此时src目录下有一个web目录 )Edit -…Tomcat
轻量级应用服务器、JSP、Servlet
Tomcat目录结构 在IDEA中创建web项目
在这里不使用maven构建项目这种方式后面会更新
新建一个java项目File - Project Settings - Facets - - Web - OK ( 此时src目录下有一个web目录 )Edit - Configurations… - Add New Configuration - - Tomcat Server - Local - 配置将 tomcat 的 lib 包下的 servlet-api.jar 包添加到项目中
web目录结构 第一个请求案例 新建一个注册界面register.html 在src目录下的包中写一个servlet类继承于HttpServlet重写service方法 在WEB-INF下的web.xml中配置路径的映射信息 测试
Servlet生命周期
三个步骤即初始化------处理请求------销毁
创建Servlet对象后----------初始化调用 init () 方法------处理/响应客户端的请求调用 service() 方法-------销毁调用 destroy() 方法最后由 JVM 的垃圾回收器进行垃圾回收
Servlet底层原理 Servlet的线程安全问题
Servlet容器采用多线程模型来处理请求。
每个请求都由一个独立的线程处理这意味着多个请求可以同时执行。
当一个请求到达Servlet时Servlet容器会创建一个新的线程来处理该请求并且该线程仅在请求处理完毕后才会被销毁。
这意味着对于同一个Servlet不同的请求可以在不同的线程上执行每个线程都有自己的执行路径和数据副本。
解决方法
避免使用共享变量成员变量使用局部变量使用同步代码块避免使用静态变量和类变量使用ThreadLocal可以在每个线程中存储和访问私有变量
Tomcat页面跳转
页面跳转页面\Servlet
页面之间、页面跳转Servlet 的跳转可以通过三种方式实现 超链接 a hrefpage1.html跳转到page01/awindow.localtion button onclickfun01()跳转到page01/button
scriptfunction fun01(){windoe.location.href /page01}
/script表单 form actionpage01 methodpost...input typesubmit/
/formServlet跳转Servlet\页面
Servlet可以通过转发和重定向两种方式实现 转发 Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding(utf-8);resp.setContentType(text/html;charsetutf-8);req.getRequestDispatcher(servlet3).forward(req, resp);//req.getRequestDispatcher(page01.html).forward(req, resp);
}重定向 Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding(utf-8);resp.setContentType(text/html;charsetutf-8);resp.sendRedirect(servlet5);//resp.sendRedirect(page01.html);
}重定向与转发
重定向与转发是Tomcat实现跳转的两种方式但是两者之间有区别
区别一转发只请求一次重定向请求两次区别二转发是服务器内部的页面跳转重定向是《告诉客户端应该从哪里请求客户端再次向服务器请求》所以服务器内不存在的资源转发不能响应区别三转发可以让客户端访问受保护的资源比如WEB-INF文件夹下的资源重定向不可以区别四转发可以转发服务器中中文名的资源比如 “ 页面.html”而重定向不可以 编码问题
Tomcat的Servlet中的doget(req, resp) 和 doPost(req, resp)方法的req、resp都需要设置编码格式
req.setCharacterEncoding(utf-8);
resp.setContentType(text/html;charsetutf-8);