栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

cgb2109-day16

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cgb2109-day16

文章目录
    • 一,注解方式开发Servlet程序
      • --1,创建新的web工程,创建Servlet
      • --2,测试Servlet
    • 二,配置方式开发Servlet程序
      • --1,创建Servlet类
      • --2,配置Servlet类
      • --3,测试
      • --4,总结
    • 三,前后端整合
      • --1,创建前端HTML网页
      • --2,创建后端Servlet程序
      • --3,配置Servlet类
      • --4,测试
    • 四,Servlet的继承结构
    • 五,Servlet的生命周期
      • --1,概述
      • --2,测试
        • 创建Servlet程序
        • 创建前端网页
        • 测试
    • 六,Request
      • --1,概述
      • --2,常用方法
      • --3,测试
        • 创建HTML网页
        • 创建Servlet程序,解析请求参数
    • 七,表单提交数据
      • --1,创建HTML网页文件
      • --2,创建Servlet程序

一,注解方式开发Servlet程序 –1,创建新的web工程,创建Servlet
package cn.tedu.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

//1,这是新版本的Servlet提供的注解开发方式,更好更简单(否则自己写配置文件)
//参数是,规定了浏览器的地址栏到底怎么写才能访问到我这个Servlet类
//2,ServletDemo1是子类,可以使用父类的所有资源(除了私有的,构造方法)
//3,自定义Servlet的规则:
//方式1:extends HttpServlet--推荐!!!
//方式2:extends GenericServlet--了解
//方式3:implements Servlet--了解
@WebServlet("/ServletDemo1")
public class ServletDemo1 extends HttpServlet {
    //4,继承了父类,但是  想改父类原有的功能时 就重写!!
    //5,不论调用doPost()或者doGet(),都是由Servlet来调用的
//6,当用户用post方式提交请求时(form表单提交),Servlet来调用doPost()
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("您访问了doPost()");
    }
//7,当用户用get方式提交请求时,Servlet来调用doGet()
    //(在地址栏?拼接数据 + form没改method的值)
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("您访问了doGet()");
    }
}

–2,测试Servlet

启动服务器,访问浏览器
http://localhost:8080/cgb2109javaweb03_war_exploded/ServletDemo1
本机 Tomcat默认的端口号 项目名称 项目中的资源名称

二,配置方式开发Servlet程序 –1,创建Servlet类
package cn.tedu.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//使用配置方式开发Servlet程序
public class ServletDemo2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doPost()成功的被Servlet调用!");
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet()成功的被Servlet调用!");
    }
}

–2,配置Servlet类


    
    
        
        hello
        
        cn.tedu.servlet.ServletDemo2
    
    
    
        
        hello
        
         
        /a/b/c
    


–3,测试

http://localhost:8090/cgb2109javaweb03_war_exploded/ServletDemo2

–4,总结

三,前后端整合 –1,创建前端HTML网页


	
		
		前后端 安排起来
	
	
		
		点我,访问Servlet
		
	


–2,创建后端Servlet程序
package cn.tedu.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class ServletDemo3 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doPost()");
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet()");
    }
}

–3,配置Servlet类


    
    
        
        hello
        
        cn.tedu.servlet.ServletDemo2
    
    
    
        
        hello
        
        /a/b/c
    

    
        hello2
        cn.tedu.servlet.ServletDemo3
    
    
        hello2
        
        /ServletDemo3
    
    

–4,测试

四,Servlet的继承结构

五,Servlet的生命周期 –1,概述

分为三大阶段
初始化 – 由Servlet主动调用init()
提供服务 – 由Servlet主动调用service()/doGet()/doPost()
销毁 – 由Servlet主动调用destroy()

–2,测试 创建Servlet程序
package cn.tedu.lifecycle;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//1,Servlet程序的注解开发方式,代替了web.xml文件中的8行配置代码
@WebServlet("/ServletDemo4")//注解的参数是指浏览器的访问方式
public class ServletDemo4 extends HttpServlet {
    //2,Servlet的生命周期中会被调用的方法有:
    //init() service()/doGet/doPost destroy()
    //3,因为GenericServlet提供的以上方法中都是空实现,
    // 重写这些方法并添加方法体来感受初始化的不同阶段
    //4,重写的要求:有足够的权限 + 方法声明必须和父类一样
    @Override
    //当第一次访问Servlet程序时,Servlet自己调用init(),只会调用一次
    public void init() throws ServletException {
        System.out.println("init()被调用了,Servlet已被初始化!");
    }
    @Override
    //每次访问Servlet程序时,Servlet自己调用service(),会调用多次
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service()开始为您服务啦!");
    }
    @Override
    //正常的关闭服务器时,Servlet自己调用destroy(),只会调用一次
    public void destroy() {
        System.out.println("destroy()被调用了,Servlet即将被销毁!");
    }
}

创建前端网页


	
		
		前后端 安排起来
	
	
		
		点我,访问ServletDemo3
		点我,访问ServletDemo4
		
	


测试

六,Request –1,概述

是指 从前端浏览器 到 后端的Servlet程序 的访问过程,叫请求的过程
可以使用Servlet提供的Request对象,来解析请求中的请求参数

–2,常用方法
getParamter()--按照参数名获取参数值,但是只得到一个值
getParamterValues()--按照参数名获取参数值,但是得到多个值,存入数组
setCharacterEncoding()--如果请求参数中有中文,设置字符集为utf-8
setAttribute()--设置属性
getAttribute()--获取属性
–3,测试 创建HTML网页


	
		
		前端提交数据,后端解析数据
	
	
		点我,提交get数据1
		点我,提交get数据2
	



创建Servlet程序,解析请求参数
package cn.tedu.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

@WebServlet("/ServletDemo5")
public class ServletDemo5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
    //当用户以get方式提交数据时,Servlet会自动调用doGet()
    //get方式提交的数据,可以一个一个的解析getParameter()
    //也可以解析多个值getParameterValues()
    //如果使用的是Tomcat7.0以上的版本,get方式提交中文数据不会乱码
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException, IOException {
        //1,request解析请求参数 name=jerry&pwd=123
        //1.1,获取一个值
        String s = request.getParameter("name");
        System.out.println(s);//获取name参数的值
        String pwd = request.getParameter("pwd");
        System.out.println(pwd);//获取pwd参数的值
        //1.2,获取到多个值
        String[] hobbies = request.getParameterValues("hobby");
        System.out.println( Arrays.toString(hobbies) );
        
    }
}


七,表单提交数据 –1,创建HTML网页文件


	
		
		
	
	
		

测试 get提交数据

姓名:
密码:

测试 post提交数据

姓名:
密码:
–2,创建Servlet程序
package cn.tedu.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ServletDemo6")
public class ServletDemo6 extends HttpServlet {
    //TODO 处理post方式提交的数据--可能出现中文乱码!!
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
    //ServletDemo6?user=jack&pwd=123
    //处理get方式提交的数据
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String user = request.getParameter("user");//获取user的值
        String pwd = request.getParameter("pwd");//获取pwd的值
        System.out.println(user+pwd);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571221.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号