Servlet学习,servlet

作者:运维知识    发布时间:2019-12-11 14:08     浏览次数 :

[返回]

关于在Servelet中如何获取当前时间的操作方法

1.ReactiveCocoa开发中常见用法有哪些?

Servlet学习,servlet

学习网站来自www.imooc.com

Servlet基础
1、什么是Servelet?
Servelet 是服务器上运行的小程序。一个人Servlet就是一个Java类
,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里
的Servlet 程序。Servlet是jsp的前身。

2、Tomcat容器等级
Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个
Context对应一个Web工程。Engine是一个引擎容器;Host是主机容器。

图片 1

 

3、编写一个Servlet
分为三个步骤。
1.编写一个类继承HttpServlet
2.重写doGet()或者doPost()方法;取决于提交方式。
3.在web.xml中注册Servlet.
程序如下:

index.jsp中的代码:

<body>
    <h1>第一个Servlet小例子</h1>
    <hr>
    <!-- 用get方式请求,写一个超链接就可以了;超链接访问就是get请求-->
    <a href="servlet/HelloServlet">get方式请求HelloServlet</a><br>
    <!-- 用post方式,做一个表单就可以实现 -->
    <form action="servlet/HelloServlet" method="post">
    <input type="submit" value="post方式请求HelloServlet"/>
    </form>
  </body>

 HelloServlet.java中的代码:

package Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//继承于HttpServlet
public class HelloServlet extends HttpServlet {
//重写方法
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  System.out.println("处理Get()请求...");
  //获得一个给浏览器输出的对象out,类型为 PrintWriter
  PrintWriter out = response.getWriter();
  //指定输出文件的类型
  response.setContentType("text/html;charset=utf-8");
  //用out对象给浏览器输出一个信息。可以在里面用html的代码
  out.println("<strong>Hello Servelet!</strong><br>");
  //3.注册;在WEB-INF里面的web.xml中注册
 }

 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  System.out.println("处理post()请求...");
  //获得一个给浏览器输出的对象out,类型为 PrintWriter
  PrintWriter out = response.getWriter();
  //指定输出文件的类型
  response.setContentType("text/html;charset=utf-8");
  //用out对象给浏览器输出一个信息。可以在里面用html的代码
  out.println("<strong>Hello Servelet!post</strong><br>");
  //3.注册;在WEB-INF里面的web.xml中注册;已经注册完 就不用重复
 }

}

 web.xml中的注册代码:

注册的过程就是在web.xml中添加两个标签
<servlet></serclet>和<servlet-mapping></servlet-mapping>
并且每个标签里都要包含两个子标签
在<servlet></servlet>中要包含<servlet-name>给Servlet取一个名字
</servlet>和<servlet-calss>要访问的Servlet的类名(包名+类名)
</servlet-class>
在<servlet-mapping></servlet-mapping>中要包含<servlet-name>给
Servlet取一个名字(注:和上面的名字要一样)</servlet>和<urlpattern>
Servlet访问的路径</url-pattern>

<servlet>
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>Servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>HelloServlet</servlet-name>
  <url-pattern>/servlet/HelloServlet</url-pattern>
  </servlet-mapping>

 

学习网站来自www.imooc.com Servlet基础 1、什么是Servelet? Servelet 是服务器上运行的小程序。一个人Servlet就是一个Java类 ,并且...

//获取到当前时间Date date=new Date();DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time=format.format;

第1种:代替代理

以上就是小编为大家带来的关于在Servelet中如何获取当前时间的操作方法全部内容了,希望大家多多支持脚本之家~

rac_signalForSelector:用于替代代理

// 1.代替代理,RACSubject
    // RAC方法:可以判断下某个方法有没有调用
    // 只要self调用Selector就会产生一个信号
    // rac_signalForSelector:监听某个对象调用某个方法
    [[self rac_signalForSelector:@selector(didReceiveMemoryWarning)] subscribeNext:^(id x) {

        NSLog(@"控制器调用了didReceiveMemoryWarning");
    }];
    // 判断下redView有没有调用btnClick,就表示点击了按钮
    [[_redView rac_signalForSelector:@selector(btnClick:)] subscribeNext:^(id x) {
        NSLog(@"点击了按钮");
    }];

第2种:代替KVO

rac_valuesAndChangesForKeyPath:用于监听某个对象的属性改变

 [_redView rac_observeKeyPath:@"name" options:NSKeyValueObservingOptionNew observer:nil block:^(id value, NSDictionary *change, BOOL causedByDealloc, BOOL affectedOnlyLastComponent) {
        // 只要监听的属性一改变调用
        NSLog(@"%@",_redView.name);
    }];

    // KVO:第二种,只要对象的值改变,就会产生信号,订阅信号
    [[_redView rac_valuesForKeyPath:@"name" observer:nil] subscribeNext:^(id x) {

    }];

第3种:监听事件

rac_signalForControlEvents:用于监听某个事件

 //  只要按钮产生这个事件,就会产生一个信号
    [[_btn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {

        NSLog(@"按钮被点击%@",x);
    }];
    _btn.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
        NSLog(@"按钮点击");
        return [RACSignal empty];
    }];

第4种:代替通知

rac_addObserverForName:用于监听某个通知

    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardWillShowNotification object:nil] subscribeNext:^(id x) {

        NSLog(@"%@",x);
    }];

第5种:监听文本框文字改变

rac_textSignal:只要文本框发出改变就会发出这个信号

    [_textField.rac_textSignal subscribeNext:^(id x) {
        // x:文本框的文字
        NSLog(@"%@",x);
    }];

第6种:处理当界面有多次请求时,需要都获取到数据时,才能展示界面

rac_liftSelector:withSignalsFromArray:Signals:当传入的Signals(信号数组),每一个signal都至少sendNext过一次,就会去触发第一个selector参数的方法

  RACSignal *requestHot = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        NSLog(@"请求最热商品");
        [subscriber sendNext:@"获取最热商品"];
        return nil;
    }];

    RACSignal *requestNew = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        NSLog(@"请求最新商品");
//        [subscriber sendNext:@"获取最新商品"];
        return nil;
    }];

    // Selector调用:当所有信号都发送数据的时候调用
    // 数组存放信号
    // Selector注意点:参数根据数组元素决定
    // Selector方法参数类型,就是信号传递出来数据
    [self rac_liftSelector:@selector(updateUI:data2:) withSignalsFromArray:@[requestHot,requestNew]];

}
// 只要两个请求都请求完成的时候才会调用
- (void)updateUI:(NSString *)data1 data2:(NSString *)data2
{
    NSLog(@"%@ %@",data1,data2);
}

2.ReactiveCocoa常见宏

第一种

RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于给某个对象的某个属性绑定

    // 给某个对象的某个属性绑定一个信号,只要产生信号,就会把信号的内容给对象的属性赋值
    // 给label的text属性绑定一个信号
    RAC(_label,text) = _texfField.rac_textSignal;

第二种