servlet内容学习


title: servlet内容学习
date: 2020-07-31 07:44:17
author: sunflower34
categories: Servlet
tags:

  • Servlet

概念:用于处理用户提交在web上的数据
步骤:

  1. 创建WEB应用
  2. 写Servlet脚本
  3. 部署TOMCAT

获取参数的方法:
当提交方式为post时,在脚本中需要doPost方法获取参数

String name = request.getParameter("name");
System.out.println("name:" + name);

这个是在tomcat上查看
其中name为name属性的值
request是从web应用请求获取数据

获取响应:
当提交数据时,脚本文件获取参数后,通过响应方法在web端打印html

PrintWriter pw = response.getWriter();
pw.println(html)其中html为(html = "<div style='color:green'>success</div>";)

可以看到写html很麻烦,后面应该有简单的方式把

Servlet几类方法:

doGet()
当浏览器用get方式提交数据时
包括:默认form方式 点击超链、输入链接、ajax指定get当时

doPost()
当浏览器使用post提交数据时
包括:在form上用post、ajax指定post

Servlet()
service(HttpServletRequest , HttpServletResponse )
作用:直接用service方法无需区分是post或是get,区分一下也不难

Servlet中文问题
web上:

脚本方法上,在执行前加 request.setCharacterEncoding("UTF-8");

Servlet生命周期
Servlet是单例化的,意思是当在浏览器中输入网址后,对应脚本会实例化并执行一次构造方法
当执行时会自动调用构造方法和初始化方法和销毁方法
public LoginServlet() {}
public void init(ServletConfig config) {}
public void destroy() {}
其中LoginServlet是脚本名称
乱码问题:
https://blog.csdn.net/shark1357/article/details/88791030
idea的tomcat控制台显示乱码VM options:-Dfile.encoding=GBK

Servlet跳转
跳转有两种方式:

  1. 服务端跳转:
    request.getRequestDispatcher(“success.html”).forward(request, response);
    success.html为跳转页面全称,跳转后的地址变化html清除了。

  2. 客户端跳转:
    response.sendRedirect(“fail.html”);
    fail.html为跳转页面全称,跳转后的地址变化为fail.html就会变化了。

Servlet自启动
自启动就是在上述init()方法
首先在web.xml增加10
然后在init()方法内增加初始化方法即可

Servlet获取参数
request.getParameter(): 是常见的方法,用于获取单值的参数
request.getParameterValues(): 用于获取具有多值的参数,比如注册时候提交的 “hobits”,可以是多选的。
request.getParameterMap(): 用于遍历所有的参数,并返回Map类型。

Map<String, String[]> parameters = request.getParameterMap();                               
 Set<String> paramNames = parameters.keySet();
//获取参数名称
parameters.get(param)
//通过名称获取值

Servlet的response用法

获取响应:PrintWriter pw= response.getWriter();

返回浏览器内容:

println(),append(),write(),format()

设置响应格式:

response.setContentType("text/html");

把html改成LOL会提示下载,可用这种方式下载东西。实测不行

  1. response.setContentType(“text/html; charset=UTF-8”);
  2. response.setCharacterEncoding(“UTF-8”);
    两种响应编码方式
    1、不仅发送的文本为utf-8格式,设置浏览器的显示也为utf-8格式。
    2、知识发送的文本设置为utf-8格式。

301或302客户端跳转(301表示永久跳转,302表示临时跳转)

302:response.sendRedirect("fail.html");
301:
response.setStatus(301);
response.setHeader("Location", "fail.html");

默认是缓存开启,浏览器缓存关闭方式:

response.setDateHeader("Expires",0 );
response.setHeader("Cache-Control","no-cache");
response.setHeader("pragma","no-cache");

关闭的原因是会看到过时的信息

上传文件
前提:
1.提交方式必须为post
2.enctype=“multipart/form-data” 表示提交的数据是二进制文件

Servlet增减删查
可以发现需要在Servlet中写html代码很不方便。在html中写代码且又可调用脚本中的变量需要用到jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值