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

Web Servlet笔记(一)

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

Web Servlet笔记(一)

简介

Web工程结构

实例1

FirstServlet.java

package com.servlet;
 
public class FirstServlet extends HttpServlet{

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 接受请求发来的参数
		String name = request.getParameter("name");
		String html = "

hi,"+ name +"!
"; PrintWriter out = response.getWriter();//从服务器到浏览器返回的输出流 System.out.println("返回给浏览器的响应数据为:"+html); out.println(html);//将html发回浏览器 } }

xml:


  FirstServlet
    ... 
  
  
  
    
    first
    com.servlet.FirstServlet
  
  
  
  
  first
  /hi
  

图解

浏览器中输入信息,通过请求给TC,TC查看url去xml中匹配,匹配到后查找,再创建FirstServlet对象,执行service方法,提供响应和支持
out后,TC通过响应给浏览器,执行结果。

Servlet开发

步骤:
1.创建Servlet类,继承HttpServlet
2.重写service方法,编写程序代码
3.配置web.xml,绑定URL

Servlet访问方法

http://IP地址:端口/context-path/url-mapping远程访问使用IP地址,本地访问localhost(127.0.0.1)context-path成为“上下文路径”,默认为工程名 实例2

SampleServlet.java

package com.servlet;
 
public class SampleServlet extends HttpServlet {
	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException {
		PrintWriter out = response.getWriter();//向浏览器输出的数据流
		out.println("Baidu");
	}

}


xml:


    sample
    com.servlet.SampleServlet
  
  
  sample
  
  /sample
  

访问使用:
http://localhost:8080/FirstServlet/sample
http://127.0.0.1:8080/FirstServlet/sample

请求参数

请求参数是指浏览器通过请求向Tomcat提交的数据。通常是用户输入的数据,待Servlet进行处理;
格式:参数名1=值1&参数名2=值2&参数名n=...

表单中action属性

Servlet接收请求参数
request.getParameter()–接收单个参数
request.getParameterValues()–接收多个同名参数

Get Post 请求方法

Get方式是将数据通过在URL附加数据显性向服务器发送数据。. http://localhost:8080/FirstServlet/sample?name=zhangsan
Post方式会将数据存放在”请求体”中隐性向服务器发送数据. http://localhost:8080/FirstServlet/sample
·请求体: name=zhangsan
这两个方法比较而言,Get方法可读性更好,Post方法数据更加的隐秘

public class RequestMethodServlet extends HttpServlet{
	 //处理get请求
    public void doGet(HttpServletRequest request , HttpServletResponse response) throws IOException{
        String name = request.getParameter("name");
        response.getWriter().println("

" + name + ""); } //处理post请求 public void doPost(HttpServletRequest request , HttpServletResponse response) throws IOException{ String name = request.getParameter("name"); response.getWriter().println("

" + name + ""); } }

三种方法

service() 对所有请求都无差别处理
Get请求 doGet()
Post请求 doPost()

Get与Post应用场景

Get常用于不包含敏感信息的查询功能
例如:https://www.baidu.com/s?wd=yumao&rsv_ spt=1

Post用于安全性要求较高的功能或者服务器的”写"操作
1.用户登录 2.用户注册 3.更新公司账目

Servlet生命周期

Servlet被服务器实例化后,调用 init () 方法进行初始化,请求到达后调用service() 方法来处理客户端的请求。service方法自动派遣运行与请求对应的doXXX方法,直到服务器决定销毁实例调用 destroy() 方法终止(结束)。

    装载 - web.xml创建 - 构造函数初始化 - init()提供服务 - service()销毁 - destroy()
//servlet生命周期,的三个方法,1.被创建,执行且只执行一次init方法,2.提供服务,执行service方法,执行多次 3.被销毁,当Servlet服务器正常关闭时,执行destroy方法,只执行一次。
     
     @Override
     public void init() throws ServletException {
         // TODO Auto-generated method stub
         super.init();
     }
     
     @Override
     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         // TODO Auto-generated method stub
         super.service(req, resp);
     }
     
     @Override
     public void destroy() {
         // TODO Auto-generated method stub
         super.destroy();
     }
注释配置Servlet

Servlet 3.x之后引入了"注解Annotation" 特性注解用于简化Web应用程序的配置过程Servlet核心注解: @WebServlet


@WebServlet("/anno")//即url
public class AnnotationServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().println("I'm annotationServlet servlet!");
    }
}


JSP Servlet的缺点
    静态HTML与动态Java代码混合在一起,难以维护Servlet利用out.println()语句输出,开发效率低下Eclipse很难在开发过程中发现错误,调试困难
JSP介绍

JSP全称是(Java Server Pages),Java服务器JSP是J2EE的功能模块,由Web服务器执行JSP的作用就是降低动态网页开发难度 JSP的运行要求

可正常运行的Tomcat所有JSP页面扩展名必须是.jspJSP页面应放在Web应用程序目录下 实例三





Insert title here


		
			<%
				for(int i = 0 ;i<=50; i++){
					out.println("");
					out.println("");
					int sal = 0;
					if(i<=5){
						sal = 1500 + i * 150;
					}else if(i>5 && i<=10){
						sal = 1500 + 150 * 5 + (i-5) * 300;
						
					}else if(i>10){
						sal = 1500 + 150 * 5 + 5 * 300 + (i-10)*375 ;	
					}
				
					out.println("");
					out.println("");
				}
		
			%>
		
year salary
" + i + ""+sal+"
JSP的执行过程

JSP的转译过程

JSP的基本语法

JSP语法十分简单,按功能可分为以下四种
1.JSP代码块
2.JSP声明构造块
3.JSP输出指令
4.JSP处理指令

JSP代码块

JSP代码块用于在JSP中嵌入Java代码
JSP代码块语法:<%java代码%>
例如:

<%System.out.println("Hello World!");%>
JSP声明构造块

JSP声明构造块用于声明变量或方法
JSP声明构造块语法:<%!声明语句%>
mooc
例如:

<%! public int add(int a,int b){return a+b;} %>
JSP输出指令

JSP输出指令用于在JSP页面中显示java代码执行结果JSP输出指令语法:<%=java代码%>
例如:

<%="<b>" + name +"</b>"%>
JSP常用处理指令

<%@ page %>定义当前JSP页面全局设置
<%@include%>将其他JSP页面与当前JSP页面合并
<%@taglib%>引入JSP标签库

JSP中注释的区别

<%-- 注释 --%>JSP注释,被注释语句不做任何处理
//、用于注释<%%>java代码,被注释代码不执行
<!--html-->HTML注释,被注释的语句不会被浏览器解释

实例四

综合训练:质数算法
列出1000内的质数(除1以外,只能被1和自身整除的自然数)
要求1:使用List保存所有有效的质数
要求2:将结果打印到页面,格式为“<h1>X是质数</h1>"

<%@page import = "java.util.*,java.text.*" contentType="text/html;charset=utf-8" %>
<%!
boolean isPrime(int num){ //抽象方法 定义写在%!
	boolean flag = true;
	for(int j=2 ; j < num ; j++){
		if(num % j == 0){
			flag = false;
			break;
		}
	}
	return flag;
}
%>
<%
//泛型便于使用 包装对象integer
	List primes = new ArrayList();//用指令导入包
	for(int i = 2 ;i<=1000; i++){
		boolean flag = isPrime(i);
		
		if(flag == true){
			//out.println("

"+i+"

"); primes.add(i); } } %> <% <% for(int p : primes){ //out.println("

"+p+"是质数

");//当为html代码 利用输出语句 %>

<%=p %>是质数

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

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

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