【JavaEE】_smart tomcat常见问题

news/2024/9/8 11:07:46

目录

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 {@Overrideprotected 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 {@Overrideprotected 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,再打开浏览器,页面如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/8639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2.23数据结构

单向循环链表 创建单向循环链表,创建节点 ,头插,按位置插入,输出,尾删,按位置删除功能 //main.c #include "loop_list.h" int main() {loop_p Hcreate_head();insert_head(H,12);insert_head(…

数据结构D3作业

1. 2. 按位插入 void insert_pos(seq_p L,datatype num,int pos) { if(LNULL) { printf("入参为空,请检查\n"); return; } if(seq_full(L)1) { printf("表已满,不能插入\n"); …

深入理解java虚拟机---自动内存管理

2.2 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销…

Django学习记录04——靓号管理整合

1.靓号表 1.1 表结构 1.2 靓号表的构造 class PrettyNum(models.Model): 靓号表 mobile models.CharField(verbose_name"手机号", max_length11)# default 默认值# null true,blank true 允许为空price models.IntegerField(verbose_name"价…

第一节-docker介绍

这里写自定义目录标题 一、什么是docker二、docker和virtual machine三、docker架构 一、什么是docker docker是一种容器引擎,用于构建、部署、运行应用程序和服务。 docker的每个容器通过沙箱机制相互隔离,互不干扰。 docker容器技术相比传统的虚拟机有…

公司数据迁移,服务器小文件多复制慢解决方案

企业普遍面临一个挑战:如何高效地处理和移动大量的小型文件。这些文件虽然单个体积不大,但数量庞大,累积起来会占据极大的存储空间,而且在迁移过程中,复制这些文件的速度往往非常缓慢。这不仅影响了企业的运营效率&…