目录
1. 插件安装故障问题
2. 端口占用问题
3. 乱码问题
1. 插件安装故障问题
如果由于网络问题在IDEA中无法直接安装插件,可以去IDEA官网进行下载:
进入官网后点击Install安装,得到一个jar包:
把jar包拖拽到idea上即可自动安装;
2. 端口占用问题
正常情况下,配置好smart tomcat后,点击运行后IDEA就会调用tomcat来运行程序了,
但是在端口占用情况下会启动失败:
可通过cmd打开命令行程序,输入netstat -ano | findstr 8080命令查看端口情况:
(输入命令时注意不要有多余的空格)
可通过任务管理器(快捷键为:ctrl+shift+esc)查看进程Pid:
即:当前情况为:运行的tomcat占用了8080端口,导致smart tomcat无法使用8080端口,从而启动失败;
关闭tomcat后再通过cmd查看8080端口情况:
即8080端口当前没有进程占用;
此时再运行smart tomcat即可运行成功;
3. 乱码问题
现以浏览器输出页面要求为:你好 Servlet 为例:
.java文件内容如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Test1")
public class TestServletDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("你好 Servlet");
resp.getWriter().write("你好 Servlet");
}
}
运行smart tomcat后,根据两级路径输入url,页面如下:
我们知道乱码意为着有多个环节对于编码方式的理解不一致,比如按照utf8构造数据,而按照gbk解析数据就很容易乱码。
在本程序中,
构造数据是在idea编辑器中进行构造的,即构造数据的编码方式与idea编辑器的编码方式相同:
解析数据是在浏览器中解析的,浏览器的默认解析方式是跟随系统的,win10简体中文版使用的字符集是gbk,此时就会出现乱码;
可以修改浏览器的编码方式为utf8,可以在HTTP响应报文中显式声明浏览器返回的body字符集:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Test1")
public class TestServletDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("你好 Servlet");
resp.setContentType("text/html; charset=utf8");
resp.getWriter().write("你好 Servlet");
}
}
再重新运行smart tomcat,再打开浏览器,页面如下: