servlet基础

 Servlet (概念)
是服务器端运行的java小程序,起到一个桥梁的作用,用于浏览器和应用程序之间进行沟通。

 


    
 启动和停止 
前提条件: 1. 要安装jdk, 2. 要配置JAVA_HOME 环境变量

启动: bin/startup.bat (windows下)
停止: bin/shutdown.bat (windows下)
       或者
       在启动的黑窗口下 CTRL+C (停止程序,不是拷贝)

可以用浏览器检查它是否真正启动: 在浏览器地址栏输入 http://localhost:8080      
                                                                                           http://127.0.0.1:8080                                            

 


编写servlet基本步骤
 1. 继承 HttpServlet父类
  2. 使用注解 @WebServlet(urlPatterns = "浏览器访问路径")
 3. 覆盖父类中  service 方法
 
@WebServlet(urlPatterns = "/hello")
public class MyServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你好,程瑞科"); 
        resp.setContentType("text/html;charset=utf-8");
        resp.getWriter().println("<html><body>你好,世界</body></html>

 7. 浏览器发送请求(***)

语法:
http://ip地址:端口号/servlet地址?参数名1=参数值1&参数名2=参数值2...
       
?name=张三&pass=123  // name是参数名,张三是参数值, pass是参数名, 123 是参数值

服务器要获取请求参数:
String 请求参数的值 = request.getParameter("请求参数名");

注意:
    如果某个参数没有传递,使用request.getParameter()返回的是null值
    request.getParameter()返回的总是字符串,需要自己做数据类型转换
       

发送请求类型
1) get 请求  直接通过浏览器地址发送的请求
2) post 请求    
表单form既可以发送get请求,也可以发送post请求
 区别:
          get 意味着获取信息(对应查询操作)
           post 意味着增,改,删等操作
        
对于post请求,会有中文乱码问题,解决方法是调用:
req.setCharacterEncoding("utf-8");

> 注意: tomcat 8 已经对get请求中的中文按utf-8进行解码了, 所以程序员不需要对get请求的中文进行额外处理
         tomcat 7, tomcat 6 ... 对get请求中的中文还需要特殊处理

 servlet 的生命周期

浏览器首次向此servlet发送请求时,会创建它的实例对象;以后再发送请求使用的仍然是第一次创建的对象。
结论:整个生命周期中,servlet只有一个实例(单例的)

     1) 构造方法首先执行(只执行一次)
     2) 初始化方法init (只执行一次)
     3) 服务方法 service (反复被执行)来一次请求执行一次
     4) 销毁方法 destroy (只执行一次)在服务器停止前,或重新部署时

jsp
java server page
用途:主要用来生成html标签

在表现形式上类似于html 但多了一行
<%@ page contentType="text/html;charset=utf-8" %>
上面的代码称为 page 指令,主要作用就是指明此页面是一个jsp页面,并且通过contentType说明他的字符编码和格式
jsp 中有 
1. 指令: `<%@ 指令名 %>`
2. 脚本:  `<%  可以是任意java代码  %>`
3. 表达式: `<%= 表达式 %>` 把执行结果显示在页面上

EL表达式语言
expression language 在jsp用来展示结果的语言

变现形式为
${ 表达式语言 }

要用el表达式显示复杂的内容,需要把内容提前放入`作用域`, el再从`作用域`中把内容取出来显示
 设置属性
pageContext.setAttribute("名称", Object); // 把内容起一个名字放入作用域

之后就可以通过EL表达式
${pageScope.名称}

el表达式可以通过
${对象.属性名} 但这里的属性名,依据是对象的get方法,而不是私有属性名
把get方法中get去掉(或把is方法的is去掉),剩余的单词首字母小写,作为对象的属性名,例如

getName() ==> name
getUsername() ==> username
getHelloWorld() ==> helloWorld
isClose()  ==>  close

JSTL
java 标准标签库
java standard tag library

主要的工具就是配合el表达式,实现循环,条件判断等功能
前提: 加入jstl-1.2的jar包
导入标签库
<%@ taglib uri="标签库唯一标识" prefix="前缀" %>

forEach
<c:forEach items="要遍历的集合" var="临时变量名" begin="起始数字" end="结束数字">
    ${临时变量名}
</c:forEach>
要遍历的集合 必须使用${} 从作用域获取

 if
<c:if test="布尔条件">内容</c:if>

MVC 
Model 模型 ==>  数据(例如从数据库查询出来的list集合, 里面包含java对象)
View  视图 ==>  数据的展现形式 (jsp就是一种视图技术)
Controller 控制器 ==> 把模型和视图联系起来 (servlet 充当控制器作用)

由servlet器查询数据,把数据放入作用域,跳转至jsp视图
jsp视图从作用域中获取数据,并展示

服务器常见的错误类型
500 Internal Server Error 服务器内部错误
404 Not Found 资源未找到错误
405 Method Not Allowed 方法不支持
200 OK 表示这次请求正常,没有错误
304 这个文件没有修改,请浏览器使用上一次缓存的文件

       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值