记录我的servlet和jsp

servlet
1、我的认识
servlet是一个不一样的java程序,它作为来自web服务器或其他http客户端的请求和http服务器上的数据库或应用程序之间的中间层,按我的理解,servlet便是作为一个中间平台——接受客户端发来的请求并且响应数据给客户端。
2、相应的问题与解决方案
比较离谱的是,我这个电脑tomcat到现在都还没有配置成功,(到目前也没有找到相应的问题呜呜呜)因此这也导致后面有些尝试与探索受到了阻碍,后面的东西很多都是通过视频的观看与他人的成功来学习,后面的代码完成可能就不是很完善了呜呜呜呜o(╥﹏╥)o
3、解决乱码问题

req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");

4、jsp
jsp类似于运行在服务端的语言,比较高大上,但是究其根本,还是之前的servelt,其主要目的是为了实现java web应用程序的用户界面部分。
一大重点:在jsp中编写java代码
<% 代码片段 %> 一般定义变量和编写语句。
<%**! ** 声明代码 %> 可以声明常量,编写方法,编写类
<%= 表达式 %> 表达式被转化成String,然后插入到表达式出现的地方
根据不同的格式编写不同的部分,代码敲的还是不够熟练。(致命)
二大重点:jsp九大内置对象与四大作用域
在这里插入图片描述
在这里插入图片描述
本来想法是自己敲一下加深记忆的,但是在csdn内实在是做不出来三列的表格了,最后就ctrl c ctrl v)
善良美丽的小姐姐一定会允许我这样做的是吧,为了这份优美的读书笔记。
整理部分
对于这两节课我做了自己的相应整理。
详细如下
1、servelt 与jsp的区别与联系
区别
1、jsp本质上就是servelt。
2、组成形式不同:servlet 看做是含有HTML的Java程序; JSP 看做是含有Java代码的HTML页面。servlet在java代码中通过httpservletresponse来动态的生成一个html页面 ;jsp是通过吧java代码嵌入到html中去生成一个动态的html页面 。
3、生成周期不同: jsp 需要先解析,然后才翻译成 servlet, 之后具有servlet 相同的生命周期
4、业务方向不同 : servlet擅长擅长于流程控制,数据处理,如读取并检查数据,与数据库通信,调用商业逻辑,等等;JSP擅长表示,即构建HTML来表示请求的结果,视图展示。
(部分参考百度百科 bushi)
联系
通过MVC双剑合璧
既然JSP和Servlet都有自身的适用环境,那么能否扬长避短,让它们发挥各自的优势呢?答案是肯定的——MVC(Model-View-Controller)模式非常适合解决这一问题。

2、知识整理(第一次做,比较丑 别介意)在这里插入图片描述
3、doget()和dopost()的区别
(真不想区别这两个,又臭又长)
不同点一:
通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。

不同点二:
通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件(请求体)进行的,在URL中并没有明文显示。本质上有着不同。

不同点三:
通过Get方式提交的数据安全性不高,而Post方式的更加安全~
当然,两者都比较不安全,毕竟是比较老的东西(bushi)

直接通过URL方式发送请求,用doget()方法。

2、表单提交的方式发送请求,方式为“get”就用doget(),“post”就用dopost(),表单默认提交方式是get

3、Ajax发送请求的时候同样会指定用什么方式。

总之用get发送调doget(),用post发送调dopost()

(将姐姐上课讲的内容与网上的视频做了总结)(doge)

系统:(做的不好姐姐见谅哈,学的不是很扎实)
首先是注册页~

<html>
<head>
    <title>注册</title>
    <script>
        var status = '${sessionScope.pwdFail}';//不太懂的,百度教我的
        if (status=='yes'){
            alert("两次密码输入不一样,请重新输入")
        }
    </script>
</head>
<body>
<h1>注册</h1>
<form action="${pageContext.request.contextPath}/Register" method="post">
    <p>用户名: <input type="text" name="username" required ></p>
    <p>密码:<input type="password" name="password1" required></p>
    <p>确认密码:<input type="password" name="password2" required></p>
    <p>爱好:
        <input type="checkbox" name="hobby" value="music">音乐
        <input type="checkbox" name="hobby" value="sport">体育
        <input type="checkbox" name="hobby" value="movie">电影
    </p>
    <p>性别:
        <input type="radio" name="sex" value="boy"><input type="radio" name="sex" value="girl"></p>
    <p>个人简介:
        <textarea name="info"></textarea>
    </p>
    <p>
        <input type="submit">
        <input type="reset">
    </p>
</form>
</body>
</html>

当你成功注册时()

<html>
<head>
    <title>注册成功</title>
    <%
        HttpSession session1 = request.getSession();
        if(session1.getAttribute("username")==null){
            request.getRequestDispatcher("loss.jsp").forward(request,response);
        }
    %>    
</head>
<body>
<h1>注册成功!</h1>
<%--通过sessionScope得到信息--%>
<p> 用户名:${sessionScope.username}</p>
<p> 密码:${sessionScope.password1}</p>
<p> 性别:${sessionScope.sex}</p>
<p> 爱好:${sessionScope.hobbies}</p>
<p> 简介:${sessionScope.info}</p>
<a href="${pageContext.request.contextPath}/Out">注销</a>
</body>
</html>

提示部分(✪ω✪)

<html>
<head>
    <title>失败</title>
</head>
<body>
<h1>
    没有session信息,未注册或者已注销,请先注册
</h1>
<a href="${pageContext.request.contextPath}/register.jsp">注册</a>
</body>
</html>

注销٩(๑❛ᴗ❛๑)۶

       HttpSession session = request.getSession();
        //注销session或者移除session中的数据
        session.removeAttribute("username");
        session.removeAttribute("password1");
        session.removeAttribute("sex");
        session.removeAttribute("hobbies");
        session.removeAttribute("info");

        response.sendRedirect("success.jsp");

(能力有限呜呜呜呜)

总结:
对于小白来说,每一步都是十分的不容易,看视频,敲代码,找错误,在过程中,度娘永远是你坚实的后盾!希望以后能够熟悉且完善!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值