Java EE学习心得

2024-09-09 05:18
文章标签 java ee 学习心得

本文主要是介绍Java EE学习心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java EE学习心得

 

 

1.    称为编程专家的秘诀是:
思考-----编程--------思考------编程……..
编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程,完事后,再思考  我编的程序还有那些不好的地方和要改进的地方,可以增加写什么功能等等;然后再去编程;

2. 先搭建整体框架再抠细节,在编程中不管是什么要先做出来,再去问怎么做!即是:先Know how 载 Know why;

3. 学习软件编程是在琢磨别人怎么做,而不是我认为应该怎么做的过程;

4.    java EE内容介绍及学习顺序:

5.    书籍收藏:
JSP应用开发详解(第三版)
Struts 基于MVC的 java Web
精通Ejb(2.1或3.0【现在很多公司还在用2.1的这可选择购买】)
精通Hibernate 该书讲得比较细可以当做手册使用
Spring in Action 中文版

6.    java EE基本部分:
①:(Servlet
知识点:
0:Tomcat的安装,介绍使用
1:如何开发servlet
2:HttpServletRequest,HttpServletResponse
3:Cookie的原理和使用
4:HttpSession 的原理和使用
5:ServletContext的原理和使用
6:用户的增加,删除,修改
7:如何做一个网站计数器
。。。。。。。。。。。。。
②:(
知识点:
1:Jsp版本的用户管理系统;
2:网上商城
3:仿百度查询系统
4:留言本
包含的知识点有:
0:eclipse+myeclipse的安装介绍和使用
1:jsp的基本语法
2:jsp的九大内置对象
3:html
4:javascript
5:javamail技术
6:jsp标签/自定义标签
7:mysql数据库的安装和使用……..
 

7.    java EE高级部分:
①:(Struts
知识点:
1:手写版本的(非工具自动生成的方式)struts用户登录系统
2:Struts版本的网上商城

包含的知识点:
1:struts的原理和配置文件的介绍
2:如何使用eclispe开发struts
3:struts标签的使用
②:(Ejb
知识点:
1:用非自动生成的方式(手写版)开发一个Session Bean
2:网上在线词典(SessionBean实现)
3:网上宠物店(EntityBean实现)
4:仿qq(jms java message service 案例)
5:使用(messagedriven bean 消息驱动bean完成远程后台调用不同程序)

包含的知识点:
1:三大bean的原理及使用
2:weblogic/jboss配置使用
3:jms的配置使用
4:数据源的配置使用
5:分布式开发模式
6:异步开发模式
③:(Hibernate
知识点:
1:用非工具自动生成的方式(手写版hibernate)开发学生管理系统
2:用eclipse 3.2再次开发学生管理系统(struts+hibernate)方式开发

包含的知识点:
1:什么是对象持久化技术
2:使用hibernate的好处是什么
3:传统的三层开发模式向四层开发模式的介绍
4:如何配置hibernate(详细介绍hibernate.cfg.xml和对象映射文件)
5:如何使用hibernate对数据库进行增、删、改、查(分页)
6:struts和hibernate如何结合

④:(Spring
知识点:
1:用非自动生成的方式(手写版本Spring)开发一个计算器【重在原理】
2:用eclipse3.2再次开发学生管理系统或时bbs(struts+spring+hibernate)方式开发,【所谓的SSH构架】

包含的知识点:
1:什么是IOC(控制反转)
2:什么是DI(依赖注入)

4:数据源的配置使用
5:分布式开发模式
6:异步开发模式

8.    动态页面技术:
jsp vs asp

9.    b/s 与 c/s 比较

10.  Servlet和jsp的开发工具:

11.  理解Tomcat在网络中的位置:
Tomcat具有①:web服务器;:jsp容器;③:servlet的容器)

12.  servlet与jsp的网络拓扑图:

13.  servlet 的开发流程:
①:在%TOMCAT_HOME%\webapps下WEB-INF的文件夹,写一个文件web.xml(该网站的配置信息…),建立一个classes的子文件夹,也可以从别的目录 例 ROOT目录下拷贝也可以;
②:开发servlet(引入servlet-api.jar)
③:部署你的servlet在web.xml文件中:
④:启动TOMCAT,访问你的servlet,在浏览器的地址栏中输入:http://127.0.0.1:8080/myWebSite/hello  回车就可看到servlet的输出
注意: 127.0.0.1是服务器的所在IP    8080是端口号,要根据实际情况而改变

14.  servlet的开发方式:
①:通过实现接口Servlet的方式开发(实现Servlet中未实现的方法);
②:通过继承GenericServlet,只需要重写service方法,相对简单些;
③:通过HttpServlet开发servlet,需要重写doGet、doPost方法。这是目前用得最多的
     一种方法;
    第三种开发方式中的doGet和doPost的一些说明:
 

比较内容

Get

Post

①:安全性

get < post,get提交数据会再浏览器的地址栏显示数据信息

安全性好

②:提交内容大小

g et < post,get提交的数据不能大于2K,

post提交的数据理论上不受限制,但是实际编程中建议不要大于64K

③:响应速度

get > post ,get要求服务器立即处理请求

Post请求可能相对较慢,请求可能形成一个队列请求

15.  Servlet的生命周期:
init()初始化//当该servlet首次被访问时才会调用
destroy()摧毁、死亡//当服务器重新加载了Servlet或重启了服务器时该方法才会被调用;(手动调用销毁方法destroy()是不起作用的)

16.  解决网络传输的中文乱码的方法:
方法①:  此处要注意不要把“text/html;charset=gbk”的text与html顺序搞错,不然当访问时会弹出下载框,不在显示页面

res.setContentType(“text/html;charset=gbk”);

 

   方法②:在tomcat 的conf 目录下的 servlet。Xml中是<ConnectorURIEncoding=utf-8>标签中添加一个属性

   方法③:使用String 重新转码 :(因为java在网络传输中是以”iso-8859-1”编码传输,因此要转码才行)           

 String str=”中文”;new String(str.getBytes(“iso-8859-1”),”gb2312”);

 

乱码à新的解决办法和新的理解:

①     针对请求request的乱码  我们可以采取request.setCharacterEncoding(“utf-8”);只对pos请求起作用;

②     针对请求中的get的乱码我们可以再设置了方法①的同时修改服务器配置文件server.xml URiencoding=”utf-8”;

③     针对渲染出乱码的情况可以把response.setCharacterEncoding("utf-8");

 

17.  Servlet的使用方法
不管是实现接口servlet的方式  还是继承GenericServlet/ HttpServlet 类 在它们的类中都有类似的方法作为写逻辑代码的地方;每个方法的参数都有对应的两个参数,这两个参数在浏览器与服务器之间起着重要作用;如下:
①:实现接口Servlet 或者继承类GenericServlet的 类 :
     方法:public void service(ServletRequest req , ServletResponse res){};
②:继承HttpServlet类 :
     方法:

public void doGet(HttpServletRequest req ,HttpServletResponse res){};
public void doPost((HttpServletRequest req ,HttpServletResponse res){};


说明:以上方法的 参数 两两对应 作用效果是一样的

同一用户的不同页面共享数据:(重要技术)
1.cookie技术;

 注意:在使用Cookie 时 name  value 不能包含中文,不然会报传递不合法参数

如:例子

Cookie cookie=new Cookie(name , value);//参数类 String  String


2.页面跳转的方法:

①:sendRedirect();转向(这种方法的效率并不高,下面会有提到另一个方法)
    通过sendRedirect()这个方法传递数据
     例子:response.sendRedirect(“url ? uName=value & password=value ”);/
/这里主要传递了两个参数 分别是别名为uName 和password 这两个参数,url为你要跳转页面的映射名字 当然在传递参数时必须要用“?”与url 隔开,传递多个则用 “&”隔开;

注意:解决sendRedirect();乱码问题,这是需要在接收处 做这样的接收处理:

u = new String(request.getParameter("uname").getBytes("ISO-8859-1"));

②:request.getRequestDispatcher(“要跳转的url”).forward(request,response);
      说明:
因为sendRedirect()方法效率不高,所有软件公司常常使用第②种方法即是(转发方法)

 

 

 

3.隐藏表单的提交

<form><input type=hidden   name=名称  value=值>
</form>



4.session技术(功能:①:保存登录用户信息;②:将某些数据放入到Session中,供同一用户的各个页面使用;③:防止用户非法登录到某个页面)
     说明:当用户打开浏览器,访问某个网站时,服务器就回在服务器的内存为该浏览器    分配一个空间,该空间被这个浏览器独占。
这个空间就是session空间,该空间中的数据默认存在30min,当然,可以修改

 

如何使用Session
①:得到session  :HttpSession hs=request.getSession(true);
②:向session添加属性: hs.setAttribute(String name,Object value);
③:从session中得到某个属性: Stringname=hs.getAttribute(String name);
④:从session删除掉某个属性: hs.removeAttribute(Stringname);

l  情空 Session的方法 invalidate();[清空所有session属性]

Session 的注意事项:

5.ServletContext技术:

如何使用ServletContext:

1.    得到ServletContext的实例

this.getServletContext();

2.     添加属性SetAttribute(String name,Object obj);

3.     得到值(Value):getAttribute(Stringname);//return Object

4.     删除属性:removeAttribute(String name);

5.     s生命周期:从创建到服务器关机!

ServletContext的一些实际应用 :

1.  网站计数器

2.      网站在线用户的显示

3.      简单的聊天系统

4.      …………

总结:如果涉及到不同的用户共享数据,而这些数据量不大,同时又不希望写入数据库,我们就可以考虑使用ServletContext来时实现。

ServletContext 的注意事项:
因为ServletContext存在于服务器端而且其中的数据会长时间存在服务器,会占用内存,因此我们建议不要向ServletContext放入过大的数据。。。。切记!

说明:①:可以理解ServletContext为在服务器的一个公共空间共享于所有客户,可以被所有客户访问;

 

示意图:

18.  servlet中显示图片:
用到的就是html中的标签:
<img src=image/test.jpg >
pw.
println(“<img src=image/test.jpg >”);

19.         分页技术:分页的算法:
我们需要定义四个变量,他们有各自的用处 :
int pageSize 每页显示多少条记录
int pageNow 希望显示第几条记录
int pageCount 一共有多少页
int rowCount  一共有多少行

说明:
pageSize 是指定的pageNow是用户选择的;
rowCount是从列表中的查询得到的;
pageCount 是计算出来的该计算式为:

if(rowCount%pageSize==0){pageCount=rowCount/pageSize;}else{pageCount=rowCount/pageSize+1;}


 

针对前面提出的的问题,我们可能很自然地想到,
用select 字段名列表 form 表名 where id between ? and ?

比如显示第三页,该查询语句就是:
select *from 表名  where id字段 between 7 and 9

这个sql语句确实是别较快,但是它有一个问题,就是如果表的id被删除了
那么,某项可能就会少一条记录。

因此我们的最终解决办法是如下语句:
select top pageSize 字段名列表 from 表名 where  id字段not  in (select top
pageSize*(pageNow-1) ) id
字段 from 表名)
//该语句的含义就是:排除你希望的前面的记录条数 (select top
pageSize*(pageNow-1) ) id
字段 from 表名)
 

20.       Servlet操作文件:
 
 Servlet中操作文件跟javaSE中操作文件一样;

21.         TomCat的配置

1.   如何修改TomCat的端口

修改TomCat 根目录下/conf/server.xml文件中的port“8080” 把8080修改成您需要的端口号;

端口号的设置范围:一般实际范围是在 1~65535 (即是两个字节的范围(1~1024 则是有名端口 一般不去使用))

2.  如何设置虚拟目录

 说明:由于情况需要我们的站点需要放别的目录下比如tomcat所在的磁盘空间不够,或者为了统一管理,希望放在特定目录下而不放在默认的tomcat根目录下的webapps下等待

具体做法:打开tomcat安装目录下的conf子目录,修改其中的server.xml 在<Context path=”” docBase=”” debug=”0”/>

3.  如何给TomCat 的管理员设置密码

在tomcat安装的目录下的tomcat-users.xml文件中可以给管理员设置密码,密码设置可以防止非法用户远程登录到tomcat。

4.  如何设置数据源和连接池(公司常用手法)

方法①:通过修改%Tomcat_Home%/conf/server.xml

在指定位置添加代码即可 代码文件》》

要使用到的类 : Context 类  ;javax.naming.InitialContext类 ; DataSource 类;使用方法:

 

//创建一个上下文环境对象
Context  context=newjavax.naming.InitialContext();
//通过context 得到数据源DataSourceds=(DataSource) context.lookup(“java:comp/env/数据源的名字”);Con=ds.getgetConnection();//得到连接

方法②:通过tomcat管理界面来配置

 

22.        JavaEE的十三种核心技术

①:JDBC

②: java命名接口和目录接口 JNDI

③:企业java Beans   简称:ejb

④:javaServer Pages  JSP 

⑤:javaServlet

⑥:java IDL/CORBA

⑦:java事务体系(JTA)/java事务服务(JTS)

⑧:javaMail

⑨:javaBeans激活框架(JavaBeans Activation Framework,【JAF】

十:java 信使服务(JMS)

十一:拓展标记语言(XML)

等。。。。

 

23.        JSP(jsp=html+java片段+jsp标签+javascript(css))

1.    Jsp的声明:

①   :<%@.....%>指令

②   :<%=.........%>表达式

③   :<%.........%>小脚本

④   :<%!.........%>声明函数

⑤   :<%--…..--%>注释(该注释在客户端是不可见的其是在服务器端注释的)

⑥   :<jsp:动作 > </jsp:动作>

 

2.    Jsp网络拓扑图


jsp的运行原理:访问jsp的过程特别须要清楚:如果jsp文件是第一次被访问,jsp文件会被服务器翻译成一个对应的java文件(servlet),然后再被编译成 . class 文件并加载到内存中;如果是以后访问jsp,那么就直接调用内存中的jsp实例,所以第一次访问jsp慢,后面访问jsp的速度就会变快了。

Jsp和servlet是对应关系

Jsp是以servlet为基础的

3.    如何接收jsp页面提交的数据,并处理
可以使用jsp内置对象 request 的getParameter();取得数据
同时使用java片段表达式<%= %>

4.    jsp中如何使用java片段
在jsp中通过使用标签<% ……%>嵌入java片段,同时java片段可以用jsp内置对象的out对象 的out.println();方法把内容显示到客户端(浏览器)

5.    jsp中如何使用javascript完成对数据合法性的校验
在jsp中,我们可以在<head></head>标签之间嵌入<script language=”javaccript” >  在此使用<!—在这里面写javascript的函数 -->标签 </ script>标签
并可在html语言中随意调用 οnclick=”函数名称”

6.    jsp的九大内置对象

(1):  out //客户(浏览器)端输出数据,字节流
out.println(“ ”);

(2):request//接受客户端的http请求
getParameter(String name);//name表示表单的参数名 跟servlet很像
getParameterValues(String name);//使用得到是String【】
setAttribute(String name,Object obj);//设置名字为name的obj.值为obj
setAttribute(String name);//返回由name指定的属性值,如果不存在就返回null;
getCookie();

(3):response//封装jsp的产生的回应
addCookie(Cookie cookie);
sendRedirect(“welcome.jsp“);

(4):session //用于保存用户的信息,跟踪用户的行为
setAttribute(String name,Objectobj);
setAttribute(String name)

(5):application//多个用户共享该对象,可以做计数器

(6):pageContext //代表jsp页面的上下文

(7):exception//代表运行时的一个异常。
getMessage();

(8):page //代表jsp这个实例本身(使用比较少)

(9):config//代表jsp对应的servlet 的配置,可以得到web.xml中的参数

 

24.        MVC开发模式的分工

M:  使用java class来做,也就是(数据层)也可以是java Bean、ejb等【Model模型】

V:    使用jsp 来做 (界面层或视图层)【view视图】

C:   使用servlet来做(业务逻辑层)【controller控制器】

25.        JSP中的Session(为jsp内置对象之一)

     本质上看jsp中使用的Session技术跟servlet使用的Session技术没什么区别,基本一样,只是jsp中Session作为了一个内置对像而存在。

 

26.        JavaScriptJQuery Css

27.        EL表达式:隐式对象:

 

 

El表达式中隐式对象的介绍:

 

 

 

 

JNDI的介绍(介绍使用tomcat服务器连接数据库)

1.  首先配置Context.xml文件到META-INF目录下

Context.xml文件如下:

<?xml version="1.0"encoding="UTF-8"?><Context><Resource name="jdbc/mysql" auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="30"maxWait="10000" username="root"password="123456"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://127.0.0.1:3306/tuangou?useunicode=true&amp;characterEncoding=utf8"/></Context>

2.得到数据源,得到connection

Private  DataSource dbs=null;PublicConnection getConnection(){dDbs=(DataSource)new InitialConxtex().lookup(“java:comp/env/jdbc/mysql”);return  dbs.getConnection();}

 

 

Pager_taglib分页标签库的使用

 

src包:

  1. 首先要把上面的jar包导入工程中;
  2. 声明标签库:<%@taglib uri="/WEB-INF/lib/pager-taglib.jar"  prefix="pg"%>
  3. 使用类型包括有:单词查询多次查询

单次查询从数据库一次性把数据读取出来,而多次查询就是每次显示都从数据库查询得到数据

单次查询例子:

 


<pg:pager maxIndexPages="5"maxPageItems="2" index="center"export="currentPageNumber=pageNumber"isOffset="${false}"><c:forEach items="${sessionScope.userList}"var="u" ><pg:item>${u.id }  ||  ${u.uname }   ||  ${u.address }<br/></pg:item></c:forEach><pg:first><a href="${pageUrl}">首页</a></pg:first><pg:prev><a href="${pageUrl}">上一页</a></pg:prev><pg:pages><a href="${pageUrl}">${pageNumber}&nbsp;&nbsp;</a></pg:pages><pg:next><a href="${pageUrl}">下一页</a></pg:next><pg:last><a href="${pageUrl }">尾页</a></pg:last>

 

多次查询:则需要提供的属性有:

url:指将要跳转的路径

items:指总记录数

export="currentPageNumber=pageNumber";

maxPageItems:指每页显示的记录数

maxIndexPages:指显示页数导航数;

isOffset:false表示忽略前面的记录数,true则相反

pager.offset:后面的值就是忽略的记录数 pager.offset=(pageNow-1)*pageSize;

例子:   

<c:if test="${requestScope.userList==null}"><jsp:forward page="loadPage4.do"></jsp:forward></c:if><pg:pager url="loadPage4.do"items="${requestScope.rowCount}"index="center"maxIndexPages="5" maxPageItems="${sessionScope.pageSize}"export="currentPageNumber=pageNumber"isOffset="${true}"scope="request"><c:forEach items="${requestScope.userList}"var="u"><br>${u.id }  ||  ${u.uname }   ||  ${u.address }<br/></c:forEach><pg:index><pg:first  ><ahref="${pageUrl}&pageNow=${pageNumber}">首页</a></pg:first><pg:prev  ><ahref="${pageUrl}&pageNow=${pageNumber}">上一页</a></pg:prev><pg:pages><c:choose><c:whentest="${currentPageNumber==pageNumber}"><b style="color:red;">${pageNumber}</b></c:when><c:otherwise>&nbsp;&nbsp; <ahref="${pageUrl}&pageNow=${pageNumber}">${pageNumber}</a>&nbsp;&nbsp;</c:otherwise></c:choose></pg:pages><pg:next><a href="${pageUrl}&pageNow=${pageNumber}">下一页</a></pg:next><pg:last><ahref="${pageUrl}&pageNow=${pageNumber}">尾页</a><script type="text/javascript">var countNumber=${pageNumber}*1;</script></pg:last></pg:index>·<br/>请选择显示记录条数:<select id="SelPsize" onchange="changeSize();" ><option value="0">--请选择--</option><option value="1">1</option><optionvalue="2">2</option><optionvalue="3">3</option><optionvalue="5">5</option><optionvalue="8">8</option></select>跳转到<input type="text" id="jumpPageV"/> <input type="button"onclick="jumpPage()" value="页"id="jumpPage"/></pg:pager></body><script type="text/javascript">function changeSize(){varpageSize=document.getElementById("SelPsize").value;//alert("selPageSize:"+selPageSize);window.location.href="changePs.do?pageSize="+pageSize;}function jumpPage(){var pageNow=document.getElementById("jumpPageV").value;if(pageNow!=null&&pageNow!=""){if(!isNaN(pageNow)){if(pageNow>0&&pageNow<=countNumber){varoffset=((pageNow*=1)-1)*${sessionScope.pageSize};window.location.href="loadPage4.do?pager.offset="+offset+"&pageNow="+pageNow;}else{alert("数值范围必须在【1--"+countNumber+"】之间!");}}else{alert("非数值类型!");}}else{alert("数值不能为空!");}}</script>

 

 

 

1.     新建一个类继承对应的监听接口   如:HttpSessionLinstener

2.     到web中配置下;

<listener><listener-class></listener-class></listener>

 

 

 

 


 

这篇关于Java EE学习心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150259

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定