hello1 hello2 代码分析
1.hello1代码分析
hello.java
package javaeetutorial.hello1;
import javax.enterprise.context.RequestScoped;#导入了一个java包,注解类型为RequestScoped((1)指定bean是请求范围的 (2) 请求范围处于活动状态 (3)请求上下文被销毁)
import javax.inject.Named;#导入了一个java包,注解类型为Named(常用于命名注解javax.inject.Name并 javax.enterprise.context.RequestScoped使用请求范围将类标识为托管bean。范围定义应用程序数据如何保持和共享)
@Named
@RequestScoped
#使用两个注解
public class Hello {#定义一个公共类
private String name;#一个私有字符串name
public Hello() { #定义自身类对象
}
public String getName() {定义对象getName,返回name
return name;
}
public void setName(String user_name) {#将setNaame设置为返回值对象,把user_name赋值给this.name
this.name = user_name;
}
}
hello.1.web.xml
<?xml version="1.0" encoding="UTF-8"?>#xml版本号和编码
<web-app version="3.1" #web-app版本号
xmlns="http://xmlns.jcp.org/xml/ns/javaee" #表示web.xml命名空间
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" #类url
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">#指定web.xml约束文件xsd所在位置
<context-param>#表明应用范围内的初始化参数
<param-name>javax.faces.PROJECT_STAGE</param-name>#将参数名为faces的包导入project_stage
<param-value>Development</param-value>#参数值
</context-param>
<servlet>#在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。
<servlet-name>Faces Servlet</servlet-name>#servlet命名
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>#指定servlet类包
<load-on-startup>1</load-on-startup>#启动负载为1
</servlet>
<servlet-mapping>#更改缺省url
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>#指定url参数类型
</servlet-mapping>
<session-config>#指定缺省超时值
<session-timeout>#会话超时为30
30
</session-timeout>
</session-config>
<welcome-file-list>#指示服务器在收到引用一个目录名而不是文件名的URL时,使用的文件
<welcome-file>index.xhtml</welcome-file>#应用index.xhtml文件
</welcome-file-list>
</web-app>
2.hello2代码分析
Responseservlet.java:
package javaeetutorial.hello2; #软件包名为javaeetutorial.hello2
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
#导入io 和 serverlet相关的各类包
@WebServlet("/response")
#注解WebServerlet 为response
public class ResponseServlet extends HttpServlet {
#定义类ReponseServerlet从HttpServerlet拓展而来
@Override
#注解Override
public void doGet(HttpServletRequest request,
#定义对象doGet ,定义HttpServerletRequest 为request
HttpServletResponse response)
#定义HttpServerResponse 为response
throws ServletException, IOException {
#抛出异常
try (PrintWriter out = response.getWriter()) {
#将response的getWeite方法赋值给PrintWrite的out,response的getWrite方法来自于HttpServletResponse接口方法
String username = request.getParameter("username");
#将request的getParameter方法获得的username赋值给字符串username,requset来自于HttpServerletRequest接口方法
if (username != null && username.length() > 0) {
#当username字符串不为空且username的长度大于0时
out.println("<h2>Hello, " + username + "!</h2>");
#调用out的println打印Hello,和字符串
}
}
}
@Override
public String getServletInfo() {
return "The Response servlet says hello.";
#定义字符串getServerletinfo,返回内容
}
}
GreetingServlet.java:
package javaeetutorial.hello2;
#包名hello2
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
#导入各类需要的资源包
@WebServlet("/greeting")
#注解名greeting
public class GreetingServlet extends HttpServlet {
#拓展类GreetingServlet从HttpServlet接口
@Override
#注解Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
#同上定义对象 HttpServletRequest名为request,HttpServletResponse名为response
throws ServletException, IOException {
#抛出异常
response.setContentType("text/html");
#定义文本类型为text,html
response.setBufferSize(8192);
#定义缓冲池大小8192
try (PrintWriter out = response.getWriter()) {
out.println("<html lang=\"en\">"
+ "<head><title>Servlet Hello</title></head>");
// then write the data of the response
out.println("<body bgcolor=\"#ffffff\">"
+ "<img src=\"resources/images/duke.waving.gif\" "
+ "alt=\"Duke waving his hand\">"
+ "<form method=\"get\">"
+ "<h2>Hello, my name is Duke. What's yours?</h2>"
+ "<input title=\"My name is: \" type=\"text\" "
+ "name=\"username\" size=\"25\"/>"
+ "<p></p>"
+ "<input type=\"submit\" value=\"Submit\"/>"
+ "<input type=\"reset\" value=\"Reset\"/>"
+ "</form>");
#以上是打印网页页面相关内容
String username = request.getParameter("username");
if (username != null && username.length() > 0) {
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/response");
#将response响应赋给dispatcher分发调度
if (dispatcher != null) {
dispatcher.include(request, response);
}
#当匹配到处理请求响应的处理服务时,就返回请求和response.java的响应内容结果
}
out.println("</body></html>");
}
}
@Override
public String getServletInfo() {
return "The Hello servlet says hello.";
#在页面返回响应的文字
}
}
参考链接:
https://www.cnblogs.com/lijianxuan/p/10606299.html
https://www.cnblogs.com/zrj-cdu/p/10631701.html
hello1 hello2 代码分析的更多相关文章
- hello1和hello2代码分析
1.hello1代码分析 hello.java package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped ...
- hello1与hello2的代码分析
1.hello1代码分析 hello.java package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped ...
- Android代码分析工具lint学习
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...
- pmd静态代码分析
在正式进入测试之前,进行一定的静态代码分析及code review对代码质量及系统提高是有帮助的,以上为数据证明 Pmd 它是一个基于静态规则集的Java源码分析器,它可以识别出潜在的如下问题:– 可 ...
- [Asp.net 5] DependencyInjection项目代码分析-目录
微软DI文章系列如下所示: [Asp.net 5] DependencyInjection项目代码分析 [Asp.net 5] DependencyInjection项目代码分析2-Autofac [ ...
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(5)(IEnumerable<>补充)
Asp.net 5的依赖注入注入系列可以参考链接: [Asp.net 5] DependencyInjection项目代码分析-目录 我们在之前讲微软的实现时,对于OpenIEnumerableSer ...
- 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)
构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化 ...
- STM32启动代码分析 IAR 比较好
stm32启动代码分析 (2012-06-12 09:43:31) 转载▼ 最近开始使用ST的stm32w108芯片(也是一款zigbee芯片).开始看他的启动代码看的晕晕呼呼呼的. 还好在c ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
随机推荐
- 高通 MSM8K bootloader之一: SBL1
MSM8K Boot Flow 转自:http://www.cnblogs.com/liang123/p/6325257.html http://blog.csdn.net/F ...
- [转载]关于laravel中表关系的一对一、一对多、多对一、多对多实践
这是转载的文章 出处:https://blog.csdn.net/weixin_38112233/article/details/79220535 作者:重新遇到 一.建表和插入测试数据 1.用户表建 ...
- CSS3动画与JS动画的优缺点?
JS动画: 缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况. 2.JS动画代码复杂度高于CSS3动画. 优点: ...
- Spring 基础知识(一)基本概念 DI、IOC、AOP
DI(依赖注入) 和IOC(控制反转)都是一种设计思想,要理解他们,让我们从coding中的一些痛点入手. 依赖注入 Dependency Injection : 如果A类要使用B类的一个方法,首先必 ...
- NLog使用整理
NLog使用中碰到的问题整理 1,日志写mysql数据库报错, 原因: 在sql语句中使用了mysql的函数now() 导致插入失败, 解决办法: 使用参数代替now(). 在nlog配置文件中设置 ...
- inner join on (程序测试验证结果。) _学习贴
inner join on 两张表:机制就是第一张表的每一条数据,都会去和第二章表的每一条数据 依次进行匹配.匹配成功,就会显示出来. (程序测试验证结果.) 数据库连接 1 对 1 create ...
- 安装webstrom2019
破解webstrom2019 下载地址:https://www.jetbrains.com/webstorm/ 下载安装后进行破解(安装基本上是傻瓜样式的) 可以在线进入 http://idea.l ...
- tomcat 内存溢出处理方案
找到tomcat7w.exe 在java 页 java options 最后添加 -XX:PermSize=256m-XX:MaxPermSize=512m
- webservice和dubbo区别
webservice 不需要搭建注册中心,是一个服务框架,主要内容有soap协议,uuid注册中心,wsdl文件. dubbo 需要搭建注册中心,可以是zookeeper,redis.它是一个分 ...
- h5页面使用sessionStorage滚动到上次浏览器位置《原创》
前言: 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的 ...