servlet

(JavaEE-08)JSP九大隐式对象

萝らか妹 提交于 2019-12-05 05:27:36
#JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用 由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响 JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用 这9个对象分别是哪些,以及作用也是笔试经常考察的知识点 #JSP九大隐式对象 request response config application exception session page out pageContext JSP九大隐式对象,其中七个已经在Servlet中讲解过了,主要学习 out 与 pageContext ###out out隐式对象用于向客户端发送文本数据 out对象是通过调用pageContext对象的getOut方法返回的

JavaWeb项目中的Servlet

核能气质少年 提交于 2019-12-05 05:23:14
1.创建Servlet 2.在jsp中用ajax调用 $.post("<%=request.getContextPath()%>/AjaxValidationServlet",{"userName":userName},function(message){ alert(message); }); 这是异步验证用户是否存在。 问题:报404,提示没有这个servlet。 解决:   1.在web.xml中引用的xsi:若是3.0.xsd之后,的有注解可以解决 @WebServlet(name = "AjaxValidationServlet",urlPatterns = "/AjaxValidationServlet")   2.在3.0之前的需要在web.xml中配置servlet名和映射   <servlet> <servlet-name>AjaxValidationServlet</servlet-name> <servlet-class>com.web.AjaxValidationServlet</servlet-class> </servlet>   <servlet-mapping> <servlet-name>AjaxValidationServlet</servlet-name> <url-pattern>/AjaxValidationServlet</url

IDEA下搭建maven管理的DUBBO项目,Zookeeper作为注册中心

荒凉一梦 提交于 2019-12-05 05:02:33
环境:JDK 1.8、 dubbo版本:2.9.2-SNAPSHOT、zookeeper版本: 3.5.1-alpha、IDEA2016 1.下载zookeeper, 点击下载 ,解压即可,重命名conf文件夹中zoo_sample.cfg文件为zoo.cfg并修改为下: # zookeeper中使用的基本时间单位, 毫秒值 tickTime=2000 # follower和leader之间的最长心跳时间 initLimit=10 # 配置leader和follower之间发送消息, 请求和应答的最大时间长度 syncLimit=5 # zk数据存储位置 dataDir=E:\\Work_SoftWare\\zookeeper-3.4.9\\data # zk日志存储位置 dataLogDir=E:\\Work_SoftWare\\zookeeper-3.4.9\\log # 监听client连接的端口号 clientPort=2181 # 清理频率,单位是小时 autopurge.purgeInterval=1 各个配置参数解释见链接 https://my.oschina.net/xiaotian120/blog/194820 启动zookeeper:依次打开bin目录下的zkServer.cmd、zkCli.cmd 如果出现启动闪退的情况,需要用记事本打开以上文件

深入研究Servlet线程安全性问题

旧时模样 提交于 2019-12-05 04:14:06
Servlet/JSP技术和ASP、 PHP 等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。 Servlet的多线程机制 Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。Servlet容器会自动使用线程池等技术来支持系统的运行. 这样,当两个或多个线程同时访问同一个Servlet时,可能会发生多个线程同时访问同一资源的情况,数据可能会变得不一致。所以在用Servlet构建的Web 应用 时如果不注意线程安全的问题,会使所写的Servlet程序有难以发现的错误。 Servlet的线程安全问题 Servlet的线程安全问题主要是由于实例变量使用不当而引起的,这里以一个现实的例子来说明。 Import javax.servlet. *;

Http Status 404 解决办法

心已入冬 提交于 2019-12-05 04:07:32
1.未部署Web应用 2.URL输入错误 排错方法: 首先,查看URL的IP地址和端口号是否书写正确。 其次,查看上下文路径是否正确 Project--------Properties------MyElipse-----Web----- Web Context-root检查这个路径名称是否书写正确。 最后,检查一下文件名称是否书写正确。 3.目录不能被引用 排错方法: 在 Eclipse的“包资源管理器(Package Explorer)”检查文件存放的位置。由于META-INF WEB-INF文件夹下的内容无法对外发布,所以,如果你引用了带这两个目录的文件,肯定是不允许。例如: http://localhost:8080/guestbook/WEB-INF/index.html就是错误的 文件位置存放错误 4. Tomcat服务器中web.xml中的问题 排错方法: 如果你的web应用程序有多个jsp页面的话,当你点击你web应用程序的虚拟根目录时可能会出现404错 误,只是你只需要修改Tomcat服务器中web.xml <init-param> <param-name>listings</param-name> <param-value>false(将其该为true)</param-value> </init-param> 补充说明:在6.0.18 版本error:“ The

SpringBoot 源码解析 (六)----- Spring Boot的核心能力 - 内置Servlet容器源码分析(Tomcat)

家住魔仙堡 提交于 2019-12-05 04:00:19
Spring Boot默认使用Tomcat作为嵌入式的Servlet容器,只要引入了spring-boot-start-web依赖,则默认是用Tomcat作为Servlet容器: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> Servlet容器的使用 默认servlet容器 我们看看spring-boot-starter-web这个starter中有什么 核心就是引入了tomcat和SpringMvc,我们先来看tomcat Spring Boot默认支持Tomcat,Jetty,和Undertow作为底层容器。如图: 而Spring Boot默认使用Tomcat,一旦引入spring-boot-starter-web模块,就默认使用Tomcat容器。 切换servlet容器 那如果我么想切换其他Servlet容器呢,只需如下两步: 将tomcat依赖移除掉 引入其他Servlet容器依赖 引入jetty: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<

用注解实现SpringMvc

亡梦爱人 提交于 2019-12-05 03:36:11
在第一次完成spirngmvc代码的基础上: 开始时代码 index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <body> <h2>Hello World!</h2> <%--href="some"时是到发布的项目目录下找:访问网址是http://localhost/springmvc/some href="/some"是直接到服务器下找:访问网址是http://localhost/some--%> <a href="some.do">请求</a> </body> </html> web.xml <!--中央调度器--> <servlet> <servlet-name>springmvc</servlet-name> <!--写的那个servlet--> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <

关于项目部署完成后,jsp页面无法正常显示的问题

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 03:12:39
    今天遇到一个既搞笑却又很容易被忽视的问题,首先看下问题截图:          为什么在服务器正确完成部署后,项目中的jsp页面显示不了呢?      解决方法:       可能性1: Jsp文件的 文件名错误 ,或文件名 后缀没有加上.jsp       可能性2: 在没有用controller指定具体某一个文件夹时,jsp文件默认是要放在 WebRoot 文件夹下的,这个文件夹是tomcat服务器的根目录                可能性3: 这也是我出错的原因。就是 web.xml配置文件 中, <servlet></servlet> 标签中的 <servlet-name></servlet-name> 的内容,一定要和 <servlet-mapping></servlet-mapping> 标签中的 <servlet-name></servlet-name> 的内容 一致                     粗略的想了一下,只想到这三种可能性,欢迎补充!      来源: https://www.cnblogs.com/javaisbest/p/11901710.html

spring整合MyBatis思路

雨燕双飞 提交于 2019-12-05 03:05:32
目录 整合目标 需要的jar 整合思路 加入配置文件 整合目标 控制层采用springMVC、持久层使用mybatis实现。 需要的jar spring(包括springmvc) mybatis mybatis-spring整合包 数据库驱动 第三方连接池 整合思路 Dao层 SqlMapConfig.xml,空文件即可,但是需要文件头。 applicationContext-dao.xml 数据库连接池 SqlSessionFactory对象,需要spring和mybatis整合包下的。 配置mapper文件扫描器 Service层 applicationContext-service.xml包扫描器,扫描@service注解的类。 applicationContext-trans.xml配置事务。 Controller层 Springmvc.xml 包扫描器,扫描@Controller注解的类。 配置注解驱动 配置视图解析器 Web.xml文件 配置spring 配置前端控制器。 加入配置文件 dao sqlMapConfig.xml:MyBatis主配置文件 applicationContext-dao.xml <!-- 数据库连接池 --> <bean id="dataSource" class="" destroy-method="close"> <property

MVC模式实现注册登录

时间秒杀一切 提交于 2019-12-05 03:02:54
很多人对MVC模式搞不懂,刚开始是我也犯迷糊,知道看到一个前辈写的代码,我顿时有的恍然大悟,拿来分享给各位 MVC: 就是M:模型、V:视图(前台界面)C:后台处理的servlet 话不多说、上代码 bean中代码(用到的变量) package bean; public class Userbean { private String username;//用户名 private String phone; private String email; private String password;//密码都是与数据库匹配的,下面是set和get函数 public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username;