当前位置:网站首页>servlet交互过程图详解,servlet的常见问题,创建web项目(一)
servlet交互过程图详解,servlet的常见问题,创建web项目(一)
2022-08-02 14:27:00 【xiaoweiwei99】
目录
一.当创建web项目时,没有勾选Java EE时,如何添加web

(使用jdk8版本尽量不要使用tomcat9及以上版本的tomcat,版本不匹配的问题)
一.B/S模式和C/S模式
C/S:客户端服务器端结构模式
优点:充分利用客户端机器资源,减轻服务器负荷。(将一部分安全性不高的计算机存储任务安装在客户端,不需要将所有的计算和资源放在服务器上,减轻服务器的压力)
缺点:占用客户端内存,需要安装升级,维护成本较高
B/S:浏览器服务器模结构模式
优点:所有数据全部部署在服务器上,安全性高,升级维护成本低。客户端不需要安装。
缺点:服务器负荷重,需要服务器和客户端浏览器频繁交互,产生网络负荷。
B/S结构图:

二.创建web项目




<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="Add">
ID:<input type="text" name="id"/><br/>
姓名:<input type="text" name="username"/><br/>
balance:<input type="text" name="balance"/><br/>
<input type="submit" value="添加">
</form>
</body>
</html>

package temp;
import Dao.UserDaoImpl;
import bean.User;
import org.apache.commons.dbutils.ResultSetHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
public class AddServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String userId = request.getParameter("id");
int id = Integer.parseInt(userId);
String name = request.getParameter("username");
String userBalance = request.getParameter("balance");
double balance = Double.parseDouble(userBalance);
System.out.println(id);
System.out.println(name);
System.out.println(balance);
}
}
三.举例说明Servlet执行流程图:


四.Servlet项目中常见的问题
一.当创建web项目时,没有勾选Java EE时,如何添加web




二.在web文件中导入jar
在web-inf中创建lib,其中的类库只能被改模块使用,其他模块不能使用

如果已经在项目的目录下创建了lib:


三.404
访问路径不对,检查网址
设置默认路径方式一:


设置默认路径方式二:
在xml配置文件设置以下内容:

设置默认打开的页面名
四.405
405是值请求方法不支持:比如,method为post,但是servle没有实现doPost的方法,就会报405错误。
解释405错误是如何报出来的
五.空指针和NumberFormatException
都是因为传入的参数为空导致
六.500
服务器内部错误,报这个错就难搞了,希望你没有,哈哈哈
七.中文编码出错
tomcat8之后:
只针对post方法:request.setCharacterEncoding(“UTF-8”);
放在第一行执行哦

tomcat8之前:
(1.如果是post传递方法:
request.setCharacterEncoding(“UTF-8”);
(2.如果是get传递方法
1.先将数据转换成字节数组
Stringname=request.getParameter(“name”);
byte[]by=name.getBytes(“ISO-8859-1”);
2.将字节数组按照设定的编码格式转成成字符串
name=newString(by,“UTF-8”);

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 为什么四个字节的float表示的范围比八个字节的long要广
- 一文让你快速手写C语言-三子棋游戏
- 【go-zero】go-zero 框架踩坑指南 Q&A (持续更新中)
- MySQL语法入门
- this beta version of Typora is expired, please download and install a newer version.Typora的保姆级最新解决方法
- 【时间序列模型】AR模型(原理剖析+MATLAB代码)
- 2022-07-13 第五小组 瞒春 学习笔记
- 2022-07-21 第六小组 瞒春 学习笔记
- XGBoost 和随机森林在表格数据上优于深度学习?
- 2022-07-18 第五小组 瞒春 学习笔记
猜你喜欢
随机推荐
【Leetcode字符串--字符串变换/进制的转换】HJ1.字符串最后一个单词的长度 HJ2.计算某字符出现次数 HJ30.字符串合并处理
双亲委派机制
Cookie 和 Session
加载事件的用法
2022-7-15 第五组 瞒春 学习笔记
Window function method for FIR filter design
事件对象,事件流(事件冒泡和事件捕获)、事件委托、L0和L2注册等相关概念及用法
DOM - Element Box Model
web渗透之sql注入
MySQL语法入门
2022-07-08 第五小组 瞒春 户外拓展
【无标题】
XGBoost 和随机森林在表格数据上优于深度学习?
【故障诊断】基于PSO_VMD_MCKD方法的风机轴承微弱故障诊断
单例模式(singleton pattern)
自定义属性
2022年安全员-A证考试试题及模拟考试
对象和类总结
PAT甲级 1137 期终成绩
2022-7-12 第五组 瞒春 学习报告









