java-web学习-servlet(1)

DAY2


前言

Servlet学习
工具:IntelliJ IDEA,java,Tomcat

一、什么是Servlet?Servlet如何简单理解

一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展 服务器
的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。 虽然 Servlet 可以对任何类型的请求产生响应,但通常只用来扩展
Web 服务器的应用程序。

上面是百度百科的解释,但在我看来可以直接理解为:Servlet:servlet实际上在狭义上表示的是一个接口,也就是可以想成我们要编写一个程序,而这个程序可以完成浏览器和服务器的之间数据交流,但是我们要如何将一个程序写成服务器能够认识的,怎样才是能够有标识的,servlet技术就是为此而来的
再通俗一点就是在任何一个servlet中 有一个service(或者doget /dopost方法)是在服务器底层代码可以识别的,识别为某个特定的Java类,并且有着自己的功能。

二、实现一个简单的servlet程序

1.如何写出一个servlet

使用步骤依次对照如下代码
1.创建一个普通Java类并且继承HttpServlet
2.覆写父类中的service方法
3.书写service中的逻辑代码
4.在WebRoot下的WebInf文件下的web.xml文件夹中配置当前servlet配置文件路径等参数(下述代码省略了配置这一步而且当当前版本提升后我们可以知道利用@Servlet(注解)可以直接在当前servlet中配置urlmapping等配置文件)

代码如下(示例):

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;

/**
 * created by Farewell on 2021/6/19
 */
///请求转发作用:多个servlet联动处理请求操作,避免代码冗余,让servlet职责更加清晰
    //使用:req.getRequestDispatcher("要转发的地址或者是jsp的页面").forward(req,resp)
    //注意:在请求转发之后直接进行return ,

public class Servlet2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        String uname = req.getParameter("uname");
//        uname = new String(uname.getBytes("iso8859-1"),"utf-8");
        String pwd = req.getParameter("pwd");
        System.out.print(pwd+":"+uname);
        loginservice is = new Loginserviceimpl();
        User u = null;
        try {
            u = is.checkloginservice(uname,pwd);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        System.out.print(u);
        if(u!=null){
            Cookie c = new Cookie("uid",u.getUid()+"");
            c.setMaxAge(3*24*3600);
            c.setPath("/Demo/ck");
            resp.addCookie(c);
            resp.getWriter().write("登录成工");
        }else{
//            resp.getWriter().write("登陆失败");
//            resp.getWriter().write("<html>");
//            resp.getWriter().write("<head>");
//            resp.getWriter().write("</head>");
//            resp.getWriter().write("<body>");
//            resp.getWriter().write("<form action = 'login' method = 'get' >");
//            resp.getWriter().write("用户名:<input type='text' name = 'uname' value = ''/><br/>");
//            resp.getWriter().write("密码:<input type='password' name = 'pwd' value = ''/><br/>");
//            resp.getWriter().write("<input type='submit' value = '登录'/></br>");
//            resp.getWriter().write("</form>");
//            resp.getWriter().write("</body>");
//            resp.getWriter().write("</html>");
            //使用请求转发
            req.getRequestDispatcher("Demo").forward(req,resp);
            return ;
        }
    }
}

2.如何访问当前servlet页面

首先打开浏览器 在浏览框中输入以下url:https:// + ip(测试用的本机即localhost) + 当前项目文件夹别名+当前项目别名即可访问当前servlet。

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了Servlet,而现在的servlet对于我们都已经很遥远了,但是我们对于此学习是有着很大的好处的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值