作为企业级开发最流行的工具,用Myeclipse开发java web程序无疑是最合适的,java web前端采用jsp来显示,myeclipse默认打开jsp的视图有卡顿的现象,那么如何更改jsp默认的打开方式,让我们可以进行更快速的jsp开发呢?
简单介绍下Myeclipse吧!MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate.
由于myeclipse默认设置以jsp visuanl editor方式打开,所以会造成myeclipse卡顿的现象,那么该如何解决这种问题呢?
-
Myeclipse集成开发环境
使用Myeclipse开发web项目,编辑jsp页面时,会打开它的默认编辑器页面,同时也有预览页面,速度很慢,不适合开发。
那么该怎样提高jsp页面的打开速度呢?
首先我们还是打开window-preference,打开偏好设置。
进入偏好设置后,点击Editors-File Associations,然后会出现File types:
在File types中找到jsp类型,然后设置它的关联编辑器:
系统默认是使用Myeclipse Visual JSP Designer打开jsp页面的,不过这样打开很慢,因为是虚拟视图。在这里我们选择第二个视图,当然,你也可以使用后面的视图打开。
选中第二个视图后,点击右边的Default选项,然后点击OK保存后退出。
如果我们使用第一种视图打开,可以看到图形界面,不过这种方式编辑器会很卡。
如果采用第二种方式打开,虽然不能像浏览器那样预览,但是可以加快开发,这个全看自己爱好哦!
有时候我们需要重定向标准输出(stdout)错误输出(stderr)到编辑控件中:
比如我们作了一个前端编译器,编译的功能由mingw gcc来完成,这时我们要捕获它的编译消息到我们的输出窗口,这时怎么办呢!
很简单,我们需要用匿名管道来实现,参见如下代码:
SECURITY_ATTRIBUTES g_sa = {sizeof(SECURITY_ATTRIBUTES),NULL,TRUE}; void CGccDbgView::OnCompiler() { // TODO: Add your control notification handler code here HANDLE hWritePipe, hReadPipe; if ( !CreatePipe( &hReadPipe, &hWritePipe, &g_sa, 0 ) ) { return; } CString strCmdLine="c:\\gcc.exe test.c"; // create an environment for the CGI process.... DWORD dwCreateFlags = 0; PROCESS_INFORMATION pi; STARTUPINFO si = {0}; si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; si.wShowWindow = SW_HIDE; si.hStdInput = hReadPipe; si.hStdOutput = hWritePipe; si.hStdError = hWritePipe; BOOL bOk = CreateProcess( NULL, strCmdLine.GetBuffer(1), NULL, NULL, TRUE, dwCreateFlags, NULL, "c:\\", &si, &pi ); strCmdLine.ReleaseBuffer(); // if created.... if ( bOk ) { char buffer[1024]={0}; // wait for either cancel or process done.... WaitForSingleObject(pi.hProcess,INFINITE); // release our hold on the thread.... CloseHandle( pi.hThread ); // send the body of the post to the stdin.... DWORD dwWritten = 0; ReadFile( hReadPipe, buffer,1024,&dwWritten, NULL ); m_msg = buffer; // AfxMessageBox(m_msg); UpdateData(FALSE); // close our hold on it.... CloseHandle( pi.hProcess ); } }
这里m_msg属于编辑器控件变量。这样我们就能在编辑控件中看到结果了。如图: