六、Java Web模块(Servlet、Tomcat)

六、Java Web模块

1. Tomcat几个常用参数的配置?

1.tomcat/conf/server.xml:修改端口号、解决URL中文参数乱码、修改Tomcat连接参数;
2. tomcat/bin/catalina.sh(windows系统下是catalina.bat):可用内存设置(JAVA_OPTS)、JDK路径配置(JAVA_HOME);
3. tomcat/conf/web.xml:设置session有效时间;加载项配置(下方);
参考:http://www.360doc.com/content/17/0221/16/2708086_630858986.shtml

2. 如何让 Servlet在服务器启动时就实例化?

在 conf/web.xml中有加载项配置 <load-on-startup>0</load-on-startup>;默认值为 -1,负数时表示当此 Servlet被请求时(即有用户访问时)才会被加载;≥0时表示当此应用程序部署到 tomcat服务器(或其他服务器时)(即此应用被加载时)就会被加载,就会创建它的实例,调用其初始化方法(init());

初始化方法 init( ) 只调用一次,service()调用多次,destory()对于销毁两种情况:
① 此 web应用程序被重新加载;(重新创建 servelt实例,前面实例化的 servlet实例都会被销毁,调用其 destory( ))
② 此 web应用所在的服务器停止了。

创建一个 Servlet 的过程?

① 继承 HttpServlet;
② 重写 Servlet /doGet() /doPost();
③ web.xml中配置;
多用注解:eg:

@WebServlet("/admin")
public class AdminServlet extends HttpServlet {
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String op=req.getParameter("op");
        String tel=req.getParameter("tel");
        String password=req.getParameter("password");
        Admin admin=new Admin();
        admin.setTel(tel);
        admin.setPassword(password);
        if ("regist".equals(op)){
            doRegist(req,resp,tel,admin);
        }else {
            doLogin(req,resp,admin);
        }
    }
}  

在这里插入图片描述

Servlet 应用过滤器和监听器

@WebFilter("/*")
public class EncodingFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {
    }
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        req.setCharacterEncoding("UTF-8");
        chain.doFilter(req,resp);
    }
    public void destroy() {
    }
}
@WebFilter("/*")
public class InitDataFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {
    }
    public void destroy() {
    }
    public void doFilter(ServletRequest request, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req=(HttpServletRequest)request;
        List<Book> books= ServiceFactory.getService("book").findAll();
        req.setAttribute("books",books);       
        chain.doFilter(req,resp);
    }
}
public class TransactionFilter implements Filter{
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        try {
            TransactionManager.begin();
            chain.doFilter(req,resp);
            TransactionManager.commit();
        } catch (IOException e) {
            TransactionManager.rollback();
        }
    }
    public void destroy() {
    }
}

1. JSP和 Servlet的区别?

① jsp编译后就是 servlet,因此 jsp本质上就是 servlet;
② jsp常用作展示层,servlet常用作控制层;
③ jsp容易编写,servlet专业技术要求较高;
④ 最大不同在于:同下;
在这里插入图片描述

2.1. JavaScript中有哪些数据类型?

JavaScript数据类型:
①值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol;
②引用数据类型:对象(Object)、数组(Array)、函数(Function);
注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

有关JS数据类型详情说明

2. JSP的九大内置对象?

在这里插入图片描述

3. JSP的四种作用域?

在这里插入图片描述

3_1. JQuery对象与DOM对象如何转换?

DOM——>JQuery: $(DOM对象) JQuery对象的制造工厂;
JQuery——>DOM: 通过 [index]、get[index]

3_2. JSP的生命周期

① jsp生成 .java文件;
② 编译成 .class文件;
③ 加载 jsp.class类;
执行 class文件:
④ 实例化;
⑤ 初始化(jsp init);
⑥ 处理请求(jsp service);
⑦ 销毁(jsp destory)

3_3. JSP中动态包含与静态包含区别?

静态包含:<%@ include file="1.jsp"%> ;用 include指令,发生在 jsp —> java文件阶段即包含的动作是在 jsp被编译成 java文件时执行的,只有第一次请求时执行,只生成一个 .java文件,不能动态传递参数;(a先将 b包含进来再一起编译)
动态包含: <jsp:include page="1.jsp"...>;用<jsp:include>,发生在执行 class文件阶段动态加入即包含的动作是在 jsp对应的 servlet处理请求时执行的,每次请求都会执行,生成多个 java文件,可以使用标签传递参数,在被包含页面中获取;(动态包含是2个文件,jsp编译生成2个 .java文件,再动态包含进来即先分开编译再包含)

4. 转发 forward 和 重定向 redirect有什么区别?

① 地址栏: 转发 url地址不变,重定向 url地址会变;
② 浏览器发送了几次请求: 转发:1次,重定向:2次;
③ 是否可进行 request数据共享:
转发:两个资源间是同一个 request对象,可共享 request中的数据;
重定向:两个资源间不是同一个 request对象,不可以共享;
④ 转发不支持跨域(当前工程内部跳转),重定向可支持跨域。

什么是跨域?:https://blog.csdn.net/qq_41029923/article/details/120458737

在这里插入图片描述

5. GET请求 和 POST请求的区别?

① 携带请求参数的方式:
Get:通过请求头携带参数,参数会显示在 url地址栏;
Post:通过请求体携带参数,参数不会显示在地址栏,更安全;
② 服务器端处理请求的方法:
Get:会调用 Servlet的 doGet()来处理请求;
Post:会调用 Servlet的 doPost()来处理请求;
③ 数据的大小与限制:
Get传递参数大小有限制(<2k);
Post传递参数大小没有限制;

在这里插入图片描述

------------------------------------------------------------------------------------------

6. session的工作原理?

在这里插入图片描述

7. session和 cookie的区别?

在这里插入图片描述

8. 如果客户端禁止 cookie能实现 session还能用吗?

session和 cookie的区别?
在这里插入图片描述
------------------------------------------------------------------------------------------

9. springMVC和 struts的区别?

在这里插入图片描述

10. 如何避免 SQL注入?

在这里插入图片描述
什么是SQL注入:
SQL 注入其实就是恶意用户通过在表单中填写包含 SQL 关键字的数据来使数据库执行非常规代码的过程。简单来说,就是数据越俎代庖做了代码才能干的事情。这个问题的来源是,SQL 数据库的操作是通过 SQL 语句来执行的,而无论是执行代 码还是数据项都必须写在 SQL 语句之中,这就导致如果我们在数据项中加入了某些 SQL 语句关键字(比如说 SELECT、DROP 等等),这些关键字就很可能在数据库写入或读取数据时得到执行
参考:https://blog.csdn.net/xuaner8786/article/details/79670900

11. 什么是 XSS攻击?如何避免?

在这里插入图片描述

12. 什么是 CSRF攻击?如何避免?

在这里插入图片描述
CSRF代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web应用程序上执行不需要的操作。CSRF攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。

第1篇 开发工具及框架概述  第1章 开发前奏  1.1 java web应用概述  1.2 配置开发环境  1.3 基础技术简单简介  1.4 核心框架初步认识  1.5 小结  第2章 myedipse开发工具对各种框架的支持  2.1 使用jsp的两种模式  2.2 struts框架的实现  2.3 hibernate框架的实现  2.4 jpa框架的实现  2.5 spring框架的实现  2.6 jsf框架的实现  2.7 ajax框架的实现  2.8 使用jdbc连接数据库  2.9 小结  第3章 实现各种框架的集成  3.1 spring框架与其他框架的集成原理  3.2 实现ssh三种框架环境集成    3.3 实现spring与struts 2.x集成  3.4 实现spring、struts2.x和hibernate框架集成  3.5 小结  第2篇 典型模块开发  第4章 在线文本编辑器(fckeditor)  4.1 分析fckeditor在线文本编辑器  4.2 fckeditor在线文本编辑器初级应用  4.3 fckeditor在线文本编辑器常用配置  4.4 fckeditor在线文本编辑器高级应用  4.5 小结  第5章 验证模块(jsp+servlet+jsvaildation)  5.1 表单基础  5.2 客户端表单验证框架  5.3 服务器端验证  5.4 实现图形验证码  5.5 避免重复提交功能  5.6 缩略加水印图像  5.7 小结  第6章 网络硬盘  6.1 网络硬盘功能原理  6.2 网络硬盘功能具体实现——浏览磁盘和显示文件信息  6.3 网络硬盘功能具体实现——操作文件夹和文件  6.4 小结  第7章 网站统计模块(jsp+servlet)  7.1 网站统计模块原理  7.2 实现显示欢迎信息功能,  7.3 指点迷津——cookie知识  7.4 统计访问量功能  7.5 指点迷津——session知识  7.6 统计在线人数功能  7.7 小结  第8章 网络购物车(jsp+servlet+javabean)  8.1 网络购物车原理  8.2 实现网络购物车功能  8.3 小结  第9章 搜索引擎(lucene+web spider)  9.1 关于搜索引擎的基本概念  9.2 网络蜘蛛(web spider)  9.3 下载和分析lucene全文搜索组件  9.4 初步使用lucene全文搜索组件  9.5 新闻搜索引擎具体实现  9.6 小结  第10章 在线网上支付(jsp+servlet+javabean)  10.1 在线网上支付原理  10.2 在线网上支付功能工具类  10.3 发出支付请求过程  10.4 接受支付返回过程  10.5 小结  第11章 javaweb邮件发送系统(jsp+servlet+javabean)  11.1 javaweb邮件发送系统原理  11.2 下载邮件相关jar包  11.3 普通方式电子邮件的发送  11.4 html方式电子邮件的发送  11.5 携带附件电子邮件的发送  11.6 多学两招——关于邮件的基础知识  11.7 小结  第12章 网络留言板(jsp+servlet+javabean)  12.1 网络留言板原理  12.2 添加留言  12.3 浏览留言  12.4 管理留言  12.5 使用dao模式网络留言板  12.6 小结  第13章 网络留言板续——oracle数据库  13.1 连接数据库——idbc驱动程序  13.2 数据库连接池  13.3 commons dbutils组件  13.4 小结  第14章 ajax技术jquary框架的经典应用  14.1 jquery框架的简单应用  14.2 利用jquery框架实现的经典运用  14.3 实现仿google suggest功能  14.4 google suggest功能的相关javascript代码  14.5 小结  第15章 在线文件上传和下载(struts 2.x+fileupload)  15.1 在线文件上传和下载模块原理  15.2 文件上传组件fileupload  15.3 初步使用文件上传组件(components-fileupload)  15.4 单文件的上传  15.5 多文件的上传  15.6 小结  第16章 网上投票系统(struts 2.x+hfreechart)  ]6.1 网上投票系统原理  16.2 图表组件jfreechan  16.3 初步使用图表组件(jfreechad)  16.4 实现网上投票系统  16.5 小结  第17章 商业银行网上账户管理系统(struts 2.x)  17.1 商业银行网上账户管理系统简述  17.2 商业银行网上账户管理系统前期准备  17.3 商业银行网上账户管理系统具体实现——持久层  17.4 商业银行网上账户管理系统具体实现——业务层  17.5 商业银行网上账户管理系统具体实现——表示层  17.6 商业银行网上账户管理系统具体实现——工具类、校验器及拦截器  17.7小结  第18章 hibernate分页系统(hibernate 3.0)  18.1 hibernate分页系统原理  18.2 封装javabean的commons-beanutils组件  18.3 关于hibernate框架中一些通用类  18.4 实现hibernate分页系统前期准备  18.5 关于hibernate分页系统的具体实现  18.6 关于hibernate分页系统的表示层  18.7 多学两招——分页标签  18.8 小结  第19章 生成报表(struts 2.x+hibernate+jxl)  19.1 生成报表原理  19.2 下载jxl组件  19.3 生成报表前期准备  19.4 生成报表具体开发——持久层和服务层  19.5 生成报表具体开发——表示层  19.6 多学两招——其他报表插件  19.7 小结  第20章 数据格式转换(struts 2.x+hibernate+dom4j)  20.1 关于xml文件基础知识  20.2 下载dom4j  20.3 数据格式转换功能前期准备  20.4 数据格式转换功能具体开发  20.5 多学两招——其他操作xml文件组件  20.6 小结  第21章 用户维护功能(struts 2.x+ibatis)  21.1 用户维护功能  21.2 关于用户维护基础知识——ibatis框架  21.3 用户维护系统具体实现  21.4 小结  第22章 用户登录模块(struts 2.x+guice+国际化)  22.1 用户登录概述  22.2 关于用户登录的基础知识——国际化资源  22.3 关于用户登录的基础知识——guice框架  22.4 用户登录的具体实现  22.5 小结  第3篇 项目案例实战  第23章 在线音乐管理系统(ajax+jsp+struts 2.x)  23.1 在线音乐管理系统简述  23.2 在线音乐管理系统前期准备  23.3 在线音乐管理系统具体实现——超级管理员操作  23.4 在线音乐管理系统具体实现——注册用户操作  23.5 小结  第24章 数据汇聚系统(struts 2.x+spring+ibatis)  24.1 数据汇聚系统简述  24.2 数据汇聚系统简述  24.3 关于ibatis框架的一些文件  24.4 数据汇聚系统具体实现  24.5 数据汇聚系统具体实现——表示层  24.6 小结  第25章 投票管理系统(struts 2.x+spring+hibernate)  25.1 投票管理系统简述  25.2 投票管理系统前期准备  25.3 投票管理系统的具体实现——领域模型层  25.4 投票管理系统的具体实现——持久层  25.5 投票管理系统的具体实现——业务层  25.6 关于管理员表示层  25.7 关于创建投票表示层  25.8 关于管理和查找投票表示层  25.9 关于实现投票操作表示层  25.10 小结  第26章 权限管理系统(struts 2.x+spring+jpa)  26.1 权限管理系统简述  26.2 权限管理系统前期准备  26.3 权限管理系统具体实现——关联表操作  26.4 权限管理系统具体实现——模块操作  26.5 权限管理系统具体实现——功能操作  26.6 权限管理系统具体实现——角色操作  26.7 权限管理系统具体实现——用户操作  26.8 小结  第27章 商业银行设备巡检系统(struts 2.x+spring+hibernate)  27.1 商业银行设备巡检系统概述  27.2 商业银行设备巡检系统前期准备  27.3 商业银行设备巡检系统具体实现——系统管理应用  27.4 商业银行设备巡检系统具体实现——设备报修管理  27.5 商业银行设备巡检系统具体实现——设备巡检管理  27.6 多学两招——关于postgresql数据库  27.7 小结  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值