servlet

Servlet过滤器快速入门

不打扰是莪最后的温柔 提交于 2020-03-12 12:23:37
提前阅读: https://blog.csdn.net/Su_Levi_Wei/article/details/50665835 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓↓↓↓ Servlet过滤器 ↓↓↓↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Servlet过滤器; 为什么要有? 如果有N多个Servlet要执行一样的操作的时候, 没有必须要在所有的Servlet都进行相同的代码操作, 那样会造成代码冗余性变大,也会使得开发效率低下。 是什么? 是Servlet中的三大组件之一,是由SUN公司制定的标准/接口 过滤器的本质就是一个java应用中的一个对象而已。。。。。。 作用; 过滤器可以在一个请求资源【动态或静态】的资源时, 或者是在响应资源时,执行过滤任务【代码逻辑】 ◆ 因为是在Serlvet业务逻辑之前执行的, 所以可以进行一些关键的操作, 用于提高用户体验,以及提高开发效率 因为没有必须都写在所有要使用 这个业务逻辑代码的Servlet中写, 只是需要把对应的Servlet和 服务器进行关联 如;1.在请求资源和响应资源的时候所有Servlet的编码集 2.用户统一登录的权限,就是只有用户登录了才可以进行访问某些资源。 特点;

servlet工作步骤

做~自己de王妃 提交于 2020-03-12 12:17:11
servlet工作步骤 关键技术xml解析+反射 1.类加载 1.截取url中的servlet路径 2.在web.xml中找到url-pattern里面的值,找不到就报404错误。 3.找到了根据url-pattern的值查找到对应的servlet-name 4.根据servlet-name找到servlet-class从而找到对应的类 5.通过反射Class cl=Class.forName("servlet-class里面的值") 2.创建servlet对象 Object obj=cl.newInstance();//通过反射创建对象 3.调用init()方法 Method m1=cl.getMethod("init");//通过反射执行方法 m1.invoke(obj); 4.调用service()方法 Method m2=cl.getMethod("service",servletrequest.class,servletresponse.class);//通过反射执行方法 m2.invoke(obj,request,response); 5.调用destroy()方法 Method m3=cl.getMethod("destory");//通过反射执行方法 m3.invoke(obj); 来源: https://www.cnblogs.com/chenguosong/p

10秒看懂JSP(随笔)

我的梦境 提交于 2020-03-12 07:30:08
JSP是什么? JSP全称Java Server Page,直译就是“运行在服务器端的页面”。我们可以直接在JSP文件里写HTML代码,使用上把它当做HTML文件。而且JSP中HTML/CSS/JS等的写法和HTML文件中的写法是一模一样的。但它毕竟不是HTML,而且本质差了十万八千里。因为我们还可以把Java代码内嵌在JSP页面中,很方便地把动态数据渲染成静态页面。这一点,HTML打死都做不到。 当有人请求JSP时,服务器内部会经历一次动态资源(JSP)到静态资源(HTML)的转化,服务器会自动帮我们把JSP中的HTML片段和数据拼接成静态资源响应给浏览器。也就是说JSP是运行在服务器端,但最终发给客户端的都已经是转换好的HTML静态页面(在响应体里)。 即:JSP = HTML + Java片段(各种标签本质上还是Java片段) JSP本质就是一个Servlet。 EB容器接收到以.jsp为扩展名的URL的访问请求时,它将把该请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。 每个JSP 页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件

JavaWeb学习笔记——开发动态WEB资源(一)Java程序向浏览器输出数据

耗尽温柔 提交于 2020-03-12 04:36:32
开发一个动态web资源,即开发一个Java程序向浏览器输出数据,需要完成以下2个步骤:   1.编写一个Java类,实现Servlet接口     开发一个动态web资源必须实现javax.servlet.Servlet接口,Servlet接口定义了Servlet引擎与Servlet程序之间通信的协议约定     以下是MyServlet.java文件中的代码(写的这个类的名字叫做MyServlet): package org.MyServlet.MyServlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; //开发一个动态web资源必须实现javax.servlet.Servlet接口 //Servlet接口定义了Servlet引擎与Servlet程序之间通信的协议约定 //Q:MyServlet完成了一个动态网页程序,或者说是一个功能,如何让客户端能否准确得找到我们得这个Servlet服务 //A

Servlet线程安全问题

谁都会走 提交于 2020-03-12 04:11:53
同时访问(全局)共享变量,会出现线程安全问题; 解决方法: 1)同步代码块——Synchronized(this)方法;(不推荐,前一个释放后一个才能使用) 2)实现SingleThreadModle接口(out); 3)尽量不要在Servlet实例内使用共享变量。 同时访问局部变量,则不会出现引发线程安全问题。 ThreadServlet.java package net.pp.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; @WebServlet(name = "ThreadServlet", urlPatterns = "/thread") public class ThreadServlet extends HttpServlet { int i=0;//不使用共享变量,出现线程安全问题 protected void

学习Pushlet(一):下载及运行demo

点点圈 提交于 2020-03-12 04:00:45
  一、最近项目中要使用pushlet作为推送消息的技术框架,所以特地学习了一下。我们重点记录项目中的实际使用过程和解决问题的办法。首先需要了解的是,Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。表面上是服务器推,实现是还是客户端拉。这张原理图画的不错:   1.browser发送join命令到server,server产生唯一的ID给client端,用于标识这次会话的唯一性,Pushlet是用java.rmi.server.UID产生的唯一的标志会话的标志,此时server会把sessionID作为key,session对象作为value,存放到HashMap里面,然后通过response.getWriter().println()回调给browser   2.browser拿到sessionID,并发送listen命令,listen命令,有subject,提交给server,server首先验证Session HashMap里面有没有这个sessionID,验证通过后,回调给客户端listen_ack消息,同时开始把数据放入eventQueue中,并update给客户端

JSP九大内置组件

♀尐吖头ヾ 提交于 2020-03-11 21:57:21
request:用户端请求,此请求会包含来自get/post请求的参数 response:网页传回用户端的回应 pagecontext:网页上下文,也就是网页的属性 session:与请求有关的会话期 application:servlet正在执行的内容 out:用来传送回应的输出 config:servlet的构架部件 page:jap网页本身 exception:针对错误网页。 JSP和servlet有哪些共同点和区别,他们之间的联系是? Jsp是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是类servlet, 最主要的不同点是:Servlet的应用逻辑是在java文件中,并且完全从表示层的html里分离开来,而JSP则是java和html组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet侧重于控制逻辑。 来源: https://www.cnblogs.com/ningheshutong/p/5793888.html

Servlet之间的跳转(MVC模式)

橙三吉。 提交于 2020-03-11 19:02:36
两种跳转方式 1)请求转发Forward——URL不跳转 登陆错误时候显示错误界面 2 )请求重定向 Redirect——URL跳转 案例:登陆后跳转网站首页 loginError.jsp <%-- Created by IntelliJ IDEA. User: 18582 Date: 2020/3/11 Time: 16:17 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> </body> <center> <h2>用户登陆错误界面</h2> <%=request.getAttribute("errorMessage")%> </center> </html> LoginSerblet.java package net.pp.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http

如何使用Servlet和Ajax?

假装没事ソ 提交于 2020-03-11 17:53:56
我是Web应用程序和Servlet的新手,我有以下问题: 每当我在Servlet中打印某些内容并由网络浏览器调用它时,它将返回一个包含该文本的新页面。 有没有一种方法可以使用Ajax在当前页面中打印文本? #1楼 我将向您展示servlet的整个示例以及ajax调用的方式。 在这里,我们将创建一个简单的示例,以使用servlet创建登录表单。 index.html <form> Name:<input type="text" name="username"/><br/><br/> Password:<input type="password" name="userpass"/><br/><br/> <input type="button" value="login"/> </form> 这是ajax示例 $.ajax ({ type: "POST", data: 'LoginServlet='+name+'&name='+type+'&pass='+password, url: url, success:function(content) { $('#center').html(content); } }); LoginServlet Servlet代码:- package abc.servlet; import java.io.File; public class

Seam3 + JPA工程搭建配置

China☆狼群 提交于 2020-03-11 13:26:47
Seam3 是基于Weld构建的一个开发框架,而Weld是对JSR-299 CDI 的一个实现。JSR-299 的核心就是依赖注入,而且不需要Spring那么多的配置文件,基本上任何Bean都可以被注入。 这里介绍 JBoss Seam3 工程的搭建与相关配置,使用的是Seam 3.1.0.Final 版本,服务器是 Jboss as 7.0.2.Final 1. 首先配置Jboss as7 的JNDI数据源. 这里介绍 mysql 的配置方法,其他数据类似 打开解压好的 Jboss as7 目录 jboss-as-web-7.0.2.Final\modules\com 在这里目录下建文件夹 mysql\main\ 在main下,放入mysql-connector-java-5.1.7-bin.jar 然后添加 module.xml <? xml version="1.0" encoding="UTF-8" ?> < module xmlns = "urn:jboss:module:1.0" name = "com.mysql" > < resources > < resource - root path = "mysql-connector-java-5.1.7-bin.jar" /> </ resources > < dependencies > < module name =