JSPL开发

目录

BS架构​编辑

 编写servlet程序​编辑

代码编写:

知识点:

 请求转发和重定向:

EL表达式:


BS架构

 编写servlet程序

代码编写:

 

JSPLesson01\src\com\app\JSPTest01

test01

package com.app.JSPTest01;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Tes01 implements Servlet{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		// 响应服务的请求
		System.out.println("收到服务的请求了,哈哈哈哈哈");
	}

}

test02

package com.app.JSPTest01;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Test02 implements Servlet{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("这是第二个案例");
	}

}

test03

package com.app.JSPTest01;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

//servlet生命周期
public class Test03 implements Servlet{

	
	//初始化 进入Servlet程序 只进行一次 
	public void init(ServletConfig arg0) throws ServletException {
		System.out.println("初始化 进入Servlet程序");
	}
	
	// 针对请求的服务 每次请求都会执行
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		System.out.println("针对请求的服务");
	}
	
	
	// Servlet销毁 请求时间长后 过期自动销毁Servlet 或者 关闭服务器
	public void destroy() {
		System.out.println("Servlet销毁了");
		
	}

	
	

	
	
	
	
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

}

test04

package com.app.JSPTest01;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test04 extends HttpServlet{
	
	// 针对get请求  a标签 或者 form标签 get方式 提交 都是 明文显示内容 在url上
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		super.doGet(req, resp);
		System.out.println("收到了 get 表单的请求");
		//通过数据传输的key  获取 value
		String name = req.getParameter("zhanghao");
		String mima = req.getParameter("mima");
		if (name.equals("zhangsan")&&mima.equals("123321")) {
			System.out.println("有这个用户,允许登录");
		} else {
			System.out.println("非法用户");
		}
	}
	
	// 针对post请求 暗文传入内容 url上看不到 更加安全
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		super.doPost(req, resp);
		doGet(req, resp);//收到了post请求 也让doget处理
	}
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JSPLesson01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>hahaha</servlet-name>
  	<servlet-class>com.app.JSPTest01.Tes01</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>hahaha</servlet-name>
  	<url-pattern>/hhhh1</url-pattern>
  </servlet-mapping>
  
  
  
  
  
  
  
  
  
  
  
  
  	<servlet>
  		<servlet-name>t2</servlet-name>
  		<servlet-class>com.app.JSPTest01.Test02</servlet-class>
  	</servlet>
  
  
  	<servlet-mapping>
  		<servlet-name>t2</servlet-name>
  		<url-pattern>/ttt1</url-pattern>
  	</servlet-mapping>
  
  
  
  
  	<servlet>
  		<servlet-name>Test03</servlet-name>
  		<servlet-class>com.app.JSPTest01.Test03</servlet-class>
  	</servlet>
  
  
  	<servlet-mapping>
  		<servlet-name>Test03</servlet-name>
  		<url-pattern>/Test03</url-pattern>
  	</servlet-mapping>
  
  	
  
  	<servlet>
  		<servlet-name>Test04</servlet-name>
  		<servlet-class>com.app.JSPTest01.Test04</servlet-class>
  	</servlet>
  	<servlet-mapping>
  		<servlet-name>Test04</servlet-name>
  		<url-pattern>/Test04</url-pattern>
  	</servlet-mapping>
  
  
  
  
</web-app>

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="./Test04" method="get">
			账号:<input type="text" name="zhanghao"/>
			密码:<input type="password" name="mima"/>
			<input type="submit" value="提交"/>
	</form>
</body>
</html>

知识点:

1.类和结构的区别

1)类是引用类型,结构是值类型

2)类可以继承,结构不能继承,两者都能实现接口

3)类可以有显示的无参构造函数,结构则不能

4)类可以有析构函数,结构则不能

5)结构中不能有实例字段初始值设定,类无限制

6)类的构造函数里可以不用对所有字段进行初始化,结构必须要对所有字段进行初始化

2.C#中类成员访问修饰符有哪些, 并简述其访问权限

public:公有的,任何位置都可以访问

private:私有的,只有类的内部才能访问

protected:受保护的,只有类的内部或派生类中可以访问

internal:内部的,同一个程序集(命名空间)里面可以访问

protected internal:内部受保护的,同一个程序集里面或不同程序集派生类中可以访问

3.面向对象三大特征是什么

封装、继承、多态

4.抽象类和接口的区别

相同点:

1)不能被实例化

2)可以包含任意个抽象成员

不同点:

1)抽象类是类,具有类的特点:单基类继承,多接口实现;接口不是类,只能继承多个接口

2)抽象类中可以包含已经实现的非抽象成员;接口中所有成员都是抽象的,没有实现的

3)定义抽象类关键词:abstract,定义接口关键字:interface

5.接口可以包含哪些成员

方法、属性、事件、索引器

6.什么是装箱和拆箱

装箱:将值类型转换为object类型,或由此值类型实现的任何接口类型

拆箱:将object类型或接口类型转换为实际的值类型

7.值类型和引用类型的区别

1)值类型一般存储在线程栈上,引用类型存储在托管堆上

2)值类型的变量本身实际存储的是实际数据,引用类型的变量本身实际存储的是引用地址,实际的数据存储在托管堆上

3)在作为方法参数传递时,值类型传递的是值的副本在方法中对其修改不会影响原始值。引用类型参数传递的是引用地址,在方法中对该参数进行修改会对托管堆上该地址实际数据进行修改,从而会影响原始值

8.C#中的基本数据类型有哪些

值类型:

1)整数(由小到大):byte、short、int、long

2)浮点型:float、double、decimal

3)布尔型:bool

4)字符型:char

引用类型:

1)string、object

9.重写override和重载的区别

重写:子类对基类中的虚成员(虚方法、虚属性等)或抽象成员(抽象方法、抽象属性等)进行覆盖重新实现

重载:同一个类中,同名方法具有不同的参数签名(参数个数、参数的数据类型、参数是否具有ref、out、params修饰)的实现

10.构造函数是否可以被继承?是否可以被重写?

不能被继承,也不能被重写

11.C#中,ref和out的区别

ref和out作用:使值类型数据按引用类型方式传递

1)ref修饰参数时传入方法前必须初始化;out可以不用

2)ref参数在方法内部可以直接使用;out不可以

3)ref参数在方法内部可以使用也可以不适用;out在方法返回前必须对其赋值

12.什么是委托?事件跟委托是什么关系?

委托是一个类,它定义了方法的类型,使得方法可以当做另一个方法的参数来传递

事件也是一种委托

 请求转发和重定向:

EL表达式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值