回车=>enter
删除=>delete (捕获“删除”和“退格”键)
退出=>esc
空格=>space
换行=>tab (必须配合keydown使用)
定义组件(创建组件)
注册组件
使用组件(写组件标签 )
使用Vue.extend(options)创建,其中options和new Vue(options )时传入的那个options几乎一样,但也有点区别:
1.e1不要写,最终所有的组件都要经过一个vm的管理,由vm中的e1决定服务哪个容器。
2. data必须写成函数,避免组件被复用时,数据存在引用关系。
3. 使用template 可以配置组件结构。
一种生成动态网页的方法,那就是 Java Servlet
Servlet 是在支持 Java 的 Web 服务器或应用程序服务器上运行的 Java 程序。
用于处理从网络服务器获得的请求,处理请求,产生响应,然后将响应发送回网络服务器。
Servlet 在服务器端工作。
Servlet 能够处理从网络服务器获得的复杂请求。
可以从图像本身描述 Servlet 架构,如下所示:
1、实现Servlet接口,就要实现里面的方法
//一次创建,到处服务,一个Servlet只会有一个对象,服务所有的请求 /* * 1.实例化(使用构造方法创建对象) * 2.初始化 执行init方法 * 3.服务 执行service方法 * 4.销毁 执行destroy方法 */
2、继承 GenericServlet 类 (不常用)
3、继承 HttpServlet 方法(最常用)
继承HttpServlet方法,然后重写doGet或者 doGet() 方法处理请求即可。
它们的关系:
执行基本上涉及六个基本步骤:
客户端将请求发送到 Web 服务器。
Web 服务器接收请求。
Web 服务器将请求传递给相应的 servlet。
servlet 处理请求并以输出的形式生成响应。
servlet 将响应发送回网络服务器。
Web 服务器将响应发送回客户端,客户端浏览器将其显示在屏幕上。
Servlet比 CGI更快,因为它不涉及为收到的每个新请求创建新进程。
用 Java 编写的 Servlet 与平台无关。
多线程单实例,由于 Servlet 不在单独的进程中运行,因此消除了为每个请求创建新进程的开销。只有一个实例同时处理所有请求。这也节省了内存并允许 Servlet 轻松管理客户端状态。
它是一个服务器端组件,因此 Servlet 继承了 Web 服务器提供的安全性。
为Java Servlet 设计的API自动获得了Java 平台的优势,如平台无关和可移植性。此外,它显然可以使用在 Java 平台(如JDBC )上创建的各种 API来访问数据库。
Servlet 容器提供的服务:
网络服务:加载一个 Servlet 类。加载可能来自本地文件系统、远程文件系统或其他网络服务。Servlet 容器提供发送请求和响应的网络服务。
基于 MIME 的消息解码和编码:提供基于 MIME 的消息的解码和编码服务。
管理 Servlet 容器:管理 Servlet 的生命周期。
资源管理管理静态和动态资源,例如 HTML 文件、Servlet 和 JSP 页面。
安全服务:处理资源访问的授权和认证。
会话管理:通过将会话**ID**附加到 URL 路径来维护会话。
从创建直到毁灭的整个过程
以下是 Servlet 遵循的过程:
Servlet 初始化后调用 init () 方法,只初始化一次。
Servlet 调用 service() 方法来处理客户端的请求。
Servlet 销毁前调用 destroy() 方法,只会被调用一次。
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet {
private String message;
public void init() throws ServletException
{
// 执行必需的初始化
message = "Hello World";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("" + message + "
");
}
public void destroy()
{
// 什么也不做
}
}
返回值是字符串
根据key获取对应值value
a标签是可以传参数的,用字符串拼接
a标签和我们直接在地址栏输入的地址没区别,都是get请求
注解里有loadOnStartu=1,写完要去web.xml配置
常见的客户端传参方式:
get,post
浏览器地址栏输入一定是get请求
超级连接:一定是get
表单:get或post
返回值是String型数组
前台是 checkbox 复选框
String[] hobbies = request.getParameterValues("hobby")
拿键
EnumerationparameterNames = request.getParameterNames(); // 获取请求中传过来参数的key值,可根据它获取value while(parameterNames.hasmoreElements()){ parameterNames.hasmoreElements() }
键值对全拿
Mapmap = request.getParameterMap(); for(map.Entry name:map.entrySet()){ String key = name.getKey(); String[] value = name.getValue(); System.out.println(key + "--->" + Arrays.toString(value)); }
多个servlet处理一个请求,得用同样的request或response对象
请求转发是在服务器完成的,与客户端无关
第一个括号参数:转发的servlet地址(目标servlet)(注解里写的)
第二个括号参数:request和response对象
// 往request作用域添加一个name属性:“小红”
request.setAttribute("name","小红")
// 取name属性
request.getAttribute("name")
只要请求转发,作用域里面的东西永远都在,
1、重定向是两次请求,转发是一次请求
2、转发浏览器地址栏不变,重定向地址栏会发生变化
3、重定向是客户端行为,请求转发是服务器行为
4、重定向可以定向到任意地址,转发只能发生在项目内
/* 匹配数据库 通过JDBC连接数据库,并且查询记录,返回结果 操作步骤: 1、加载驱动,驱动包放在哪?数据库连接池。 2、JDBC,工具类。 3、处理结果 注册--新增 登录--查询 */
1、从 Java Servlet 程序与 JDBC 连接的接口开始:
适当的 JDBC 环境应与数据库创建一起设置。
为此,请从 Internet 下载 mysql-connector.jar 文件,
下载后,将 jar 文件移动到 apache-tomcat 服务器文件夹,
将文件放在apache-tomcat 目录中的lib文件夹中。